Ich versuche, einen schnellen Bericht mit zeppelin Notebook zu bauen holen data from DynamoDB with Apache SparkFehler beim Lesen DynamoDB Rekord Spark
Die Zahl fein darüber hinaus läuft, aber ich bin nicht in der Lage etwas wie
orders.take(1).foreach(println)
laufen schlägt mit dem folgenden Fehler fehl:
org.apache.spark.SparkException: Job aborted due to stage failure: Task 0.0 in stage 5.0 (TID 5) had a not serializable result: org.apache.hadoop.io.Text
Serialization stack:
- object not serializable (class: org.apache.hadoop.io.Text, value:)
- field (class: scala.Tuple2, name: _1, type: class java.lang.Object)
- object (class scala.Tuple2, (,{<<A rec from DynamoDB as JSON>>}))
- element of array (index: 0)
- array (class [Lscala.Tuple2;, size 7)
Wie behebt man das? Ich habe versucht, die Ergebnisse typisieren, aber das schlug fehl:
asInstanceOf[Tuple2[Text, DynamoDBItemWritable]
so den Filter
tatorders.filter(_._1 != null)
Ich plane dies zu einem Datenrahmen zu konvertieren dies als eine temporäre Tabelle zu registrieren. Dann plane ich Adhoc-Abfragen zu diesem Thema.
Hallo @haggy, danke für Ihre Antwort. Hier liest der Code die dynamoDB-Tabelle direkt als hadoopRDD. Ich habe nicht die Möglichkeit, es zu lesen und dann als serialisierbares Objekt zu implementieren. Ich verwende die von aws bereitgestellten Jars, um mit DynamoDB zu interagieren. –