Ошибка Spark SQL при чтении формата таблицы OpenCSVSerde КлассNotFoundException Класс org.apache.hadoop.hive.serde2.OpenCSVSerde не найден

100
11

Я пытаюсь загрузить в таблицу PySpark формат файла таблицы "net.apache.hadoop.hive.serde2.OpenCSVSerde", используя приведенный ниже код.

из pyspark.sql import HiveContext

ent = sqlContext.sql("select * from temp.employee")

Ошибка:

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 jars в Spark classpath, как показано ниже

spark.driver.extraClassPath =/USR/HDP/2.3.2.0-2950/Hadoop/Library/мгновенным-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/Library/мгновенным-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

После добавления выше банок чтение таблицы отлично подходит для этой таблицы, но оно не работает для других обычных таблиц с ошибкой ниже.

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)

Что-то не так, добавляя банки, чтобы искупить путь исполнителя? Как это решить?

спросил(а) 2016-09-20T05:56:00+03:00 4 года, 1 месяц назад
0
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема