나는 카운트 잘 실행되고 있지만 그 이상 내가오류 스파크
orders.take(1).foreach(println)
처럼 아무것도 실행할 수 없습니다입니다 data from DynamoDB with Apache Spark
를 가져 오는 비행선 노트북을 사용하여 빠른 보고서를 구축을 위해 노력 오전 DynamoDB의 기록을 읽기에 다음 오류로 인해 실패합니다.
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)
해결 방법? 나는 결과를 캐스트하는 시도를하지만 실패 :
asInstanceOf[Tuple2[Text, DynamoDBItemWritable]
그래서 난 임시 테이블로이 등록하는 DataFrame이 변환 할 계획입니다 필터를
orders.filter(_._1 != null)
했다. 그런 다음 이것에 대한 임시 쿼리를 실행할 계획입니다.
안녕하세요, 귀하의 회신에 감사드립니다. 여기 코드는 dynamoDB 테이블을 hadoopRDD로 직접 읽습니다. 나는 그것을 읽고 그것을 직렬화 가능한 객체로 구현하는 옵션을 가지고 있지 않다. DynamoDB와 상호 작용할 aws 제공된 jar를 사용하고 있습니다. –