我应该在哪里放置jar以避免java.lang.ClassNotFoundException?

时间:2019-05-16 09:06:35

标签: python hadoop pyspark apache-spark-1.6

我正尝试使用databricks库读取csv文件,如下所示:

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

print(df)

但是我得到

  

java.lang.ClassNotFoundException:无法为数据源com.databricks.spark.csv加载类。

我需要将jar放在哪里,但无法连接到互联网直接安装。

1 个答案:

答案 0 :(得分:0)

使用spark.read.csv更容易,如下所示:

from pyspark.sql import SparkSession

spark = SparkSession \
    .builder \
    .appName("Your App Name") \
    .getOrCreate()

df = spark.read.csv(file, header=True, inferSchema=True)

您可以在文档here中找到更多信息。


对于Spark 1.6:

由于您在更新的问题中提到正在使用spark 1.6,因此在这种情况下,您需要在运行应用程序时指定依赖项。

使用--jars

如果要使用罐子:

首先从maven下载jar,然后在运行时指定其位置:

spark-submit {other options} --jars csv_jar_location your_app.py

使用--packages

但是,如果使用--packages选项,spark将为您处理下载并添加jar依赖项:

spark-submit {other options} --packages com.databricks:spark-csv your_app.py