我正在尝试使用PySpark 2.1.0读取以Kudu格式存储的数据
>>> 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。那些是蜂箱/黑斑羚的桌子。
当我执行最后一行时,会得到以下错误:
.
.
.
: 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程序中,这样我就可以避免这个错误了。
发布于 2017-08-28 08:04:09
我解决这一问题的方法是将相应的pyspark2外壳或spark 2-submit命令传递给相应的弹出Jar。
发布于 2020-02-23 23:43:32
Apache火花2.3
下面是供您参考的代码:
使用下面的代码从pyspark读取kudu表:
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)
用下面的代码写到kudu表:
DF.write.format('org.apache.kudu.spark.kudu').option('kudu.master',"IP of master").option('kudu.table',"impala::TABLE name").mode("append").save()
如果您想使用Scala,下面是引用链接:
https://stackoverflow.com/questions/45871901
复制