以编程方式将 Databricks spark-csv 添加到 Spark 1.6.2 客户端

联邦调查局

我正在使用 Spark 1.6.2,开发 Python Spark 客户端(它在yarn-client模式下运行)。这里重要的是,始终在客户端机器中,我无法触发提交我的 Python 脚本,但我需要将脚本作为 Python 脚本运行

在代码的某个点,我需要在 HDFS 中加载一个 CSV 文件作为 Spark 数据帧(即使用 SQL 上下文)。您可能知道,Spark 1.6.2 没有对基于 CSV 的数据帧的本机支持,必须使用Databricks spark-csv

数据加载语句如下:

df = sql_context.read.load(format='com.databricks.spark.csv', path=url, header=True, inferSchema=False, delimiter=',')

问题com.databricks.spark.csv是没有找到

我知道必须下载 Databricks spark-csv jar 并将其放在某个地方。问题是:在哪里?这是客户端机器或集群中的要求吗?

由于我不知道,我在客户端机器上尝试过这个,但没有成功:

  • export PYTHONPATH=/path/where/jars/were/downloaded/.
  • conf = SparkConf().set('spark.jars', '/path/where/jars/were/downloaded/').
  • conf = SparkConf().set('spark.driver.extraClassPath', '/path/where/jars/were/downloaded/'). [参考]

我也在 Spark 集群上尝试过这个,但也没有成功:

  • spark.jars通过 Ambari设置自定义 spark-defaults 属性
  • spark.driver.extraClassPath通过 Ambari设置自定义 spark-defaults 属性

我会记住你的命令行选项适合--jars--packages不适合我,因为我没有运行任何 Spark 脚本:)

其他解决方案,例如在 Spark 上下文中设置 jar usingaddJar()将不起作用,因为 Spark 1.6.2 没有实现它。

那么,关于我的代码如何找到 Databricks spark-csv jar 的任何想法?

以防万一,这是错误跟踪:

java.lang.ClassNotFoundException: Failed to find data source: com.databricks.spark.csv. Please find packages at http://spark-packages.org
        at org.apache.spark.sql.execution.datasources.ResolvedDataSource$.lookupDataSource(ResolvedDataSource.scala:77)
        at org.apache.spark.sql.execution.datasources.ResolvedDataSource$.apply(ResolvedDataSource.scala:102)
        at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:119)
        at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:109)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:231)
        at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:381)
        at py4j.Gateway.invoke(Gateway.java:259)
        at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:133)
        at py4j.commands.CallCommand.execute(CallCommand.java:79)
        at py4j.GatewayConnection.run(GatewayConnection.java:209)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: com.databricks.spark.csv.DefaultSource
        at java.net.URLClassLoader$1.run(URLClassLoader.java:359)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:348)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:347)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at org.apache.spark.sql.execution.datasources.ResolvedDataSource$$anonfun$4$$anonfun$apply$1.apply(ResolvedDataSource.scala:62)
        at org.apache.spark.sql.execution.datasources.ResolvedDataSource$$anonfun$4$$anonfun$apply$1.apply(ResolvedDataSource.scala:62)
        at scala.util.Try$.apply(Try.scala:161)
        at org.apache.spark.sql.execution.datasources.ResolvedDataSource$$anonfun$4.apply(ResolvedDataSource.scala:62)
        at org.apache.spark.sql.execution.datasources.ResolvedDataSource$$anonfun$4.apply(ResolvedDataSource.scala:62)
        at scala.util.Try.orElse(Try.scala:82)
        at org.apache.spark.sql.execution.datasources.ResolvedDataSource$.lookupDataSource(ResolvedDataSource.scala:62)
        ... 14 more

我读过的其他帖子...

提前致谢。

联邦调查局

最后,我在 Databricks Github 上发现了这个问题,@drorata 的回答对我有用:

export PACKAGES="com.databricks:spark-csv_2.11:1.3.0"
export PYSPARK_SUBMIT_ARGS="--packages ${PACKAGES} pyspark-shell"

通过导出上述环境变量,Databrick spark-csv 包(和依赖项)下载到我的本地.ivy2文件夹,并在创建 Spark 上下文时自动上传到集群。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

作为客户端用户将导出到 csv 选项添加到 Highcharts 图表?

来自分类Dev

将多个客户端添加到Spring OAuth2 Auth Server

来自分类Dev

Spark在读取csv时将列添加到数据框

来自分类Dev

Databricks spark-csv检查空文件

来自分类Dev

Databricks spark-csv检查空文件

来自分类Dev

将cookie添加到客户端请求OkHttp

来自分类Dev

将Google API客户端添加到Codeigniter

来自分类Dev

将标题添加到Rabbitmq C客户端

来自分类Dev

Azure Databricks:如何在Databricks群集中添加Spark配置

来自分类Dev

将汇总列添加到Spark DataFrame

来自分类Dev

将Spark添加到Oozie共享库

来自分类Dev

如何使用Spark将新内容添加到记录

来自分类Dev

将标头添加到 RDD[string] spark scala

来自分类Dev

使用VB6将缺少的节点从Treeview1添加到Treeview2

来自分类Dev

通过RStudio加载com.databricks.spark.csv

来自分类Dev

Databricks Spark Conf

来自分类Dev

Spark-shell 与 Spark-submit 将 jar 添加到类路径问题

来自分类Dev

以编程方式向Spark DataFrame添加几列

来自分类Dev

以编程方式向Spark DataFrame添加几列

来自分类Dev

如何使用Websocket将Spark Streaming数据从服务器端发送到客户端?

来自分类Dev

使用spark-submit运行时无法加载com.databricks.spark.csv

来自分类Dev

使用spark-submit运行时无法加载com.databricks.spark.csv

来自分类Dev

Spark REST API:无法找到数据源:com.databricks.spark.csv

来自分类Dev

简单的OData客户端-如何将代理设置添加到OData客户端

来自分类Dev

如何将Spark-csv软件包添加到Azure上的Jupyter服务器以与iPython一起使用

来自分类Dev

使用Spark将内存中生成的.docx文件从服务器发送到客户端

来自分类Dev

将数据从Google BigQuery加载到Spark(在Databricks上)

来自分类Dev

如何将请求标头添加到基于Tyrus注释的客户端

来自分类Dev

如何将Google Talk(〜环聊)添加到Pidgin聊天客户端?

Related 相关文章

  1. 1

    作为客户端用户将导出到 csv 选项添加到 Highcharts 图表?

  2. 2

    将多个客户端添加到Spring OAuth2 Auth Server

  3. 3

    Spark在读取csv时将列添加到数据框

  4. 4

    Databricks spark-csv检查空文件

  5. 5

    Databricks spark-csv检查空文件

  6. 6

    将cookie添加到客户端请求OkHttp

  7. 7

    将Google API客户端添加到Codeigniter

  8. 8

    将标题添加到Rabbitmq C客户端

  9. 9

    Azure Databricks:如何在Databricks群集中添加Spark配置

  10. 10

    将汇总列添加到Spark DataFrame

  11. 11

    将Spark添加到Oozie共享库

  12. 12

    如何使用Spark将新内容添加到记录

  13. 13

    将标头添加到 RDD[string] spark scala

  14. 14

    使用VB6将缺少的节点从Treeview1添加到Treeview2

  15. 15

    通过RStudio加载com.databricks.spark.csv

  16. 16

    Databricks Spark Conf

  17. 17

    Spark-shell 与 Spark-submit 将 jar 添加到类路径问题

  18. 18

    以编程方式向Spark DataFrame添加几列

  19. 19

    以编程方式向Spark DataFrame添加几列

  20. 20

    如何使用Websocket将Spark Streaming数据从服务器端发送到客户端?

  21. 21

    使用spark-submit运行时无法加载com.databricks.spark.csv

  22. 22

    使用spark-submit运行时无法加载com.databricks.spark.csv

  23. 23

    Spark REST API:无法找到数据源:com.databricks.spark.csv

  24. 24

    简单的OData客户端-如何将代理设置添加到OData客户端

  25. 25

    如何将Spark-csv软件包添加到Azure上的Jupyter服务器以与iPython一起使用

  26. 26

    使用Spark将内存中生成的.docx文件从服务器发送到客户端

  27. 27

    将数据从Google BigQuery加载到Spark(在Databricks上)

  28. 28

    如何将请求标头添加到基于Tyrus注释的客户端

  29. 29

    如何将Google Talk(〜环聊)添加到Pidgin聊天客户端?

热门标签

归档