首页 文章

如何从pyspark中的本地jar导入包装?

提问于
浏览
0

我正在使用pyspark对csv文件做一些工作,因此我需要从https://repo1.maven.org/maven2/com/databricks/spark-csv_2.11/1.4.0/spark-csv_2.11-1.4.0.jar下载的spark-csv_2.10-1.4.0.jar导入包

由于代理问题,我将jar下载到了我的本地 .

谁能告诉我引用本地jar的正确用法:

这是我使用的代码:

pyspark --jars /home/rx52019/data/spark-csv_2.10-1.4.0.jar

它将按照预期将我带到pyspark shell,但是,当我运行时:

df = sqlContext.read.format('com.databricks.spark.csv').options(header='true',inferschema='true').load('hdfs://dev-icg/user/spark/routes.dat')

route.dat已经在hdfs上传到hdfs://dev-icg/user/spark/routes.dat

它给了我错误:

:java.lang.NoClassDefFoundError:org / apache / commons / csv / CSVFormat

如果我跑:

df = sqlContext.read.format('com.databricks.spark.csv').options(header='true',inferschema='true').load('routes.dat')

我收到此错误:

py4j.protocol.Py4JJavaError:调用o72.load时发生错误 . :java.lang.NoClassDefFoundError:无法初始化类com.databricks.spark.csv.package $

任何人都可以帮忙解决这个问题吗?非常感谢你 . 任何线索都表示赞赏 .

1 回答

  • 0

    执行此操作的正确方法是添加选项(例如,如果您正在启动火花壳)

    spark-shell --packages com.databricks:spark-csv_2.11:1.4.0 --driver-class-path /path/to/csvfilejar.jar
    

    我没有直接使用databricks csvjar,但是我使用了一个netezza连接器来激发他们使用这个选项提到的地方

    https://github.com/SparkTC/spark-netezza

相关问题