Куду с PySpark2: ошибка с KuduStorageHandler

Я пытаюсь прочитать данные, хранящиеся как Kudu, с помощью PySpark 2.1.0.

>>> from os.path import expanduser, join, abspath
>>> from pyspark.sql import SparkSession
>>> from pyspark.sql import Row
>>> spark = SparkSession.builder \
        .master("local") \
        .appName("HivePyspark") \
        .config("hive.metastore.warehouse.dir", "hdfs:///user/hive/warehouse") \
        .enableHiveSupport() \
        .getOrCreate()
>>> spark.sql("select count(*) from mySchema.myTable").show()

У меня на кластере установлен Kudu 1.2.0. Это столы Hive/Impala.

Когда я выполняю последнюю строку, я получаю следующую ошибку:

.
.
.
: java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Error in loading storage handler.com.cloudera.kudu.hive.KuduStorageHandler
.
.
.
aused by: org.apache.hadoop.hive.ql.metadata.HiveException: Error in loading storage handler.com.cloudera.kudu.hive.KuduStorageHandler
    at org.apache.hadoop.hive.ql.metadata.HiveUtils.getStorageHandler(HiveUtils.java:315)
    at org.apache.hadoop.hive.ql.metadata.Table.getStorageHandler(Table.java:284)
    ... 61 more
Caused by: java.lang.ClassNotFoundException: com.cloudera.kudu.hive.KuduStorageHandler

Я имею в виду следующие ресурсы:

Мне интересно узнать, как я могу включить зависимости, связанные с Kudu, в свою программу pyspark, чтобы я мог обойти эту ошибку.


person New Coder    schedule 24.08.2017    source источник


Ответы (2)


Я решил эту проблему, передав соответствующий Jar для kudu-spark оболочке pyspark2 или команде spark2-submit.

person New Coder    schedule 28.08.2017
comment
У меня такая же проблема, и я не могу заставить его работать. Не могли бы вы поделиться своим кодом? Я передал банку kudu-spark2 в pyspark2, sparkcontext создается правильно как переменная spark. Но когда я пытаюсь spark.sql(...).show(), я получаю Error in loading storage handler.com.cloudera.kudu.hive.KuduStorageHandler - person Susensio; 01.03.2018
comment
Код остается таким же, как указано выше. Единственное отличие состоит в том, что я предоставляю пакет maven в соответствии со своими настройками: mvnrepository .com/artifact/org.apache.kudu/kudu-spark2_2.11 В качестве вспомогательного кода: github.com/asarraf/KuduPyspark/blob/master/ - person New Coder; 09.03.2018

Apache Spark 2.3

Ниже приведен код для справки:


Прочитайте таблицу куду из pyspark с кодом ниже:

kuduDF = spark.read.format('org.apache.kudu.spark.kudu').option('kudu.master',"IP of master").option('kudu.table',"impala::TABLE name").load()

kuduDF.show(5)

Запишите в таблицу куду код ниже:

DF.write.format('org.apache.kudu.spark.kudu').option('kudu.master',"IP of master").option('kudu.table',"impala::TABLE name").mode("append").save()

Ссылка для справки: https://medium.com/@sciencecommitter/how-to-read-from-and-write-to-kudu-tables-in-pyspark-via-impala-c4334b98cf05

Если вы хотите использовать Scala, ниже приведена справочная ссылка:

https://kudu.apache.org/docs/developing.html

person Jin    schedule 24.02.2020