我正在尝试使用下面的代码将一个hive表格式SERDE'org.apache.hadoop.hive.serde2.OpenCSVSerde'加载到PySpark .

来自pyspark.sql import HiveContext ent = sqlContext.sql(“select * from temp.employee”)

Error:

MetaException(message:java.lang.ClassNotFoundException Class org.apache.hadoop.hive.serde2.OpenCSVSerde not found)
at org.apache.hadoop.hive.ql.metadata.Table.getDeserializerFromMetaStore(Table.java:290)
at org.apache.hadoop.hive.ql.metadata.Table.getDeserializer(Table.java:281)

我已经尝试将Hive serde jar添加到Spark classpath,如下所示

spark.driver.extraClassPath = / usr / hdp / 2.3.2.0-2950 / hadoop / lib / snappy-java-1.0.4.1.jar:/usr/hdp/2.3.2.0-2950/hadoop/lib/hive-serde -1.2.1.2.3.2.0-2950.jar spark.executor.extraClassPath = / usr / hdp / 2.3.2.0-2950 / hadoop / lib / snappy-java-1.0.4.1.jar:/usr/hdp/2.3 . 2.0-2950 / hadoop的/ LIB /蜂房SERDE-1.2.1.2.3.2.0-2950.jar

添加上面的jar后,这个表的表读数没问题,但是对于其他普通表没有错误 .

Py4JJavaError: An error occurred while calling o38.sql.
: java.lang.NoClassDefFoundError: org/apache/hadoop/hive/common/type/HiveIntervalYearMonth
at org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils.<clinit>(PrimitiveObjectInspectorUtils.java:228)
at org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils$TypeInfoParser.expect(TypeInfoUtils.java:341)

将jar添加到spark Actuator 路径是否有问题?怎么解决这个?