0
ArrayおよびArrayのような複雑なデータ型の列を持つテーブルを扱うときにSpark 2でCastClassExceptionを取得する私が試したSpark 2でCastClassExceptionが発生する:java.lang.ClassCastException:java.util.ArrayListをorg.apache.hadoop.io.Textにキャストすることができない
アクションは単純なものである:カウント
df=spark.sql("select * from <tablename>")
df.count
が、スパークアプリケーション
Exception in thread "main" org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 2.0 failed 4 times, most recent failure: Lost task 0.3 in stage 2.0 (TID 5, sandbox.hortonworks.com, executor 1): java.lang.ClassCastException: java.util.ArrayList cannot be cast to org.apache.hadoop.io.Text
at org.apache.hadoop.hive.serde2.objectinspector.primitive.WritableStringObjectInspector.getPrimitiveWritableObject(WritableStringObjectInspector.java:41)
at org.apache.spark.sql.hive.HiveInspectors$$anonfun$unwrapperFor$23.apply(HiveInspectors.scala:529)
at org.apache.spark.sql.hive.HadoopTableReader$$anonfun$14$$anonfun$apply$15.apply(TableReader.scala:419)
at org.apache.spark.sql.hive.HadoopTableReader$$anonfun$14$$anonfun$apply$15.apply(TableReader.scala:419)
at org.apache.spark.sql.hive.HadoopTableReader$$anonfun$fillObject$2.apply(TableReader.scala:435)
at org.apache.spark.sql.hive.HadoopTableReader$$anonfun$fillObject$2.apply(TableReader.scala:426)
at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
奇妙トンを実行すると、エラーの下になって
|-- sku_product: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- sku_id: string (nullable = true)
| | |-- qty: string (nullable = true)
| | |-- price: string (nullable = true)
| | |-- display_name: string (nullable = true)
| | |-- sku_displ_clr_desc: string (nullable = true)
| | |-- sku_sz_desc: string (nullable = true)
| | |-- parent_product_id: string (nullable = true)
| | |-- delivery_mthd: string (nullable = true)
| | |-- pick_up_store_id: string (nullable = true)
| | |-- delivery: string (nullable = true)
|-- hitid_low: string (nullable = true)
|-- evar7: array (nullable = true)
| |-- element: string (containsNull = true)
|-- hitid_high: string (nullable = true)
|-- evar60: array (nullable = true)
| |-- element: string (containsNull = true)
は、任意のより詳細な情報が必要な場合は私に知らせてください:興はspark-shell
におけるデータフレームの同じアクションは細かい
表は以下の複雑な列を持って取り組んでいる、です。
しかし、テーブルはorcとして保存されていますが、何か知っていれば分かち合ってください。 – SD098
私はORCに精通していません。テーブルとして保存するか、ファイルを保存するAPIを使用していますか?テーブルとして保存を使用している場合は、spark apiで保護する必要があるためです –