【问题标题】:Spark - Not able to read CSV fileSpark - 无法读取 CSV 文件
【发布时间】:2021-10-11 12:25:59
【问题描述】:

我正在使用数据块读取 csv 文件。当我尝试使用 inferSchema 读取 CSV 文件时,它显示了以下错误。

 Unable to infer schema for CSV. It must be specified manually.

当我提供架构时。它没有显示任何错误。但是,数据框是空的。

from pyspark.sql.types import StructType,StructField, StringType, DateType
schema = StructType([ 
    StructField("hdfs_path",StringType(),True), 
    StructField("operation",StringType(),True), 
    StructField("date",StringType(),True),
  StructField("_corrupt_record",StringType(),True)
  
  ])

legacy_hdfs_data = spark.read \
.format("csv")\
.schema(schema)\
.option("header","true")\
.load("abfss://sss@xxx.blob.core.windows.net/legacy_hdfs_event/")


样本数据

col1,col2,col3\naaa,bbb,ccc\nxxx,yyy,zzz

更新:

  • 我尝试了不同的选项,例如 multiLinelinSep\n。但是,没有任何效果。
  • 我刚刚将文件移动到bdfs,它可以工作。

【问题讨论】:

  • 你能分享你的样本数据吗?
  • @avikm 似乎是文件的问题,它有 LF 但是当我尝试在数据块中查看文件时。而是显示新行,它显示\n

标签: csv apache-spark databricks azure-databricks


【解决方案1】:

如果您的 csv 文件在任何单元格中包含多行,那么您将收到此类错误。只需在读取 csv-option("multiLine", true) 时再添加一个选项即可解决问题。

【讨论】:

    猜你喜欢
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多