PySpark:java.lang.ClassCastException
Posted
技术标签:
【中文标题】PySpark:java.lang.ClassCastException【英文标题】:PySpark: java.lang.ClassCastException 【发布时间】:2017-07-25 07:10:28 【问题描述】:我有一个 PySpark 代码,它开发查询并在另一个 Hive 表上运行 insert into 命令,该表在内部映射到 HBase 表。 当我使用 spark sql 在 Hive 表上运行 insert into 命令时,出现以下异常..
java.lang.ClassCastException: org.apache.hadoop.hive.hbase.HiveHBaseTableOutputFormat cannot be cast to org.apache.hadoop.hive.ql.io.HiveOutputFormat
我检查了数据类型和 tblproperties,但无法通过此异常。
我使用的版本是:
PySpark -- 1.6.0
Hive -- 1.1.0-cdh5.8.2
表格属性为:
ROW FORMAT SERDE 'org.apache.hadoop.hive.hbase.HBaseSerDe'
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
with serdeproperties("hbase.columns.mapping"=":key,colf:a")
tblproperties("hbase.table.name"="abc",'hbase.mapred.output.outputtable' = 'abc');
即使遇到同样的问题,我也尝试删除 Row Format Serde..
我是否因为版本不匹配而遇到问题?还是我错了??
【问题讨论】:
等待这个:github.com/apache/spark/pull/18127 来解决它! 【参考方案1】:这是spark的一个bug,看这个apache spark pull,https://github.com/apache/spark/pull/17989
【讨论】:
以上是关于PySpark:java.lang.ClassCastException的主要内容,如果未能解决你的问题,请参考以下文章
pyspark.sql.functions.col 和 pyspark.sql.functions.lit 之间的 PySpark 区别
Pyspark - ImportError:无法从“pyspark”导入名称“SparkContext”
Pyspark:基于所有列减去/差异 pyspark 数据帧
在 PySpark 的两个不同 pyspark.sql.dataframes 中的两列中创建一个 pyspark.sql.dataframe