【发布时间】:2017-01-30 14:49:17
【问题描述】:
我想在 Pyspark 中使用 phoenix 表。我尝试在这里找到的解决方案:https://phoenix.apache.org/phoenix_spark.html
但我有一个错误。你能帮我解决这个错误吗?
df_metadata = sqlCtx.read.format("org.apache.phoenix.spark").option("zkUrl", "xxx").load("lib.name_of_table")
print(df_metadata.collect())
和错误:
py4j.protocol.Py4JJavaError:调用 o103.load 时出错。 :java.lang.ClassNotFoundException:找不到数据源:org.apache.phoenix.spark。请在http://spark-packages.org查找包
如何将 org.apache.phoenix.spark 与 pyspark 一起使用?
【问题讨论】:
-
步骤 1... 为确保所有必需的 Phoenix / HBase 平台依赖项在 Spark 执行器和驱动程序的类路径上可用,请设置“spark.executor.extraClassPath”和“spark.driver”。 spark-defaults.conf 中的 extraClassPath' 以包含 'phoenix-
-client-spark.jar' -
--conf "spark.executor.extraClassPath=/opt/apache-phoenix-X.X.X-HBase-X.X-bin/phoenix-X.X.X-HBase-X.X-client.jar"\ --conf " spark.driver.extraClassPath=/opt/apache-phoenix-X.X.X-HBase-X.X-bin/phoenix-X.X.X-HBase-X.X-client.jar"\ 我在我的 Spark Submit 中添加了这些行。但我不明白第 2 步...
-
第 2 步是如果你在 Java / Scala 中使用 Maven,我认为
-
我在 spark submit 中添加了这两行。当我打印我的数据框时,我有一个数据框。但是当我打印 + collect() 我有一个错误:
df_metadata = sqlCtx.read.format("org.apache.phoenix.spark").option("table","name").option("zkUrl", "XXX").load() print(df_metadata) print(df_metadata.first())现在错误:DataFrame[PRICE: string]好的这是我的数据框但是当我想打印和收集()时:py4j.protocol.Py4JJavaError: An error occurred while calling z:org.apache.spark.sql.execution.EvaluatePython.takeAndServe. : org.apache.spark.SparkException: Job aborted due to stage failure: -
和
java.lang.IllegalStateException: unread block data
标签: pyspark classnotfoundexception phoenix