apache-spark - Apache Spark 2.0 (PySpark) - DataFrame 错误为 csv 找到多个来源

标签 apache-spark pyspark apache-spark-sql

我正在尝试在 Spark 2.0 中使用以下代码创建数据框。在 Jupyter/Console 中执行代码时,我遇到了以下错误。谁能帮我解决这个错误?

错误:

Py4JJavaError: An error occurred while calling o34.csv. : java.lang.RuntimeException: Multiple sources found for csv (org.apache.spark.sql.execution.datasources.csv.CSVFileFormat, com.databricks.spark.csv.DefaultSource15), please specify the fully qualified class name. at scala.sys.package$.error(package.scala:27)

代码:

   from pyspark.sql import SparkSession
   if __name__ == "__main__":
      session = SparkSession.builder.master('local')
                     .appName("RealEstateSurvey").getOrCreate()
      df = session \
           .read \
           .option("inferSchema", value = True) \
           .option('header','true') \
           .csv("/home/senthiljdpm/RealEstate.csv")

     print("=== Print out schema ===")
     session.stop()

最佳答案

错误是因为您必须同时拥有两个库(org.apache.spark.sql.execution.datasources.csv.CSVFileFormatcom.databricks.spark.csv.DefaultSource) 在你的类路径中。 Spark 对选择哪一个感到困惑。

您只需将 format 选项定义为

即可告诉 spark 使用 com.databricks.spark.csv.DefaultSource
  df = session \
       .read \
       .format("com.databricks.spark.csv") \
       .option("inferSchema", value = True) \
       .option('header','true') \
       .csv("/home/senthiljdpm/RealEstate.csv")

另一种选择是使用load as

  df = session \
       .read \
       .format("com.databricks.spark.csv") \
       .option("inferSchema", value = True) \
       .option('header','true') \
       .load("/home/senthiljdpm/RealEstate.csv")

关于apache-spark - Apache Spark 2.0 (PySpark) - DataFrame 错误为 csv 找到多个来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50884599/

相关文章:

java - 获取 Spark 包时如何禁用 SSL 身份验证?

apache-spark - PySpark:如何转置数据帧中的多列

java - 有没有办法对 Azure 数据工厂中的数据进行分区以填充文件,直到达到最大行值?

apache-spark - 聚合函数 Pyspark Dataframe 中的错误

java - 如何在 Spark 中按字段对数据进行分组?

hadoop - Spark 看不到默认以外的 Hive 数据库

python - PySpark Pipeline.fit(df) 方法给出 PicklingError : Could not serialize object: ValueError: substring not found while using Elephas

amazon-web-services - 在AWS EMR集群上使用SparkLauncher时缺少SPARK_HOME

json - 从 Hive 表中的 json 字符串中提取值

scala - 一个 RDD 中的部分/完全匹配值到另一个 RDD 中的值