我正在使用databricks读取csv文件。当我尝试用inferSchema
读取CSV文件时,它显示了以下错误。
Unable to infer schema for CSV. It must be specified manually.
当我提供schema时。它没有显示任何错误。但是,dataframe是空的。
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/")
sampleData
col1,col2,col3naaa,bbb,cccnxxx,yyy,zzz
更新:
- 我尝试了不同的选项,如
multiLine
,linSep
和n
。但是,什么都不工作。 - 我只是把文件移动到
bdfs
,它工作。
如果您的csv文件在任何单元格中包含多行,那么您将得到这样的错误。只要在读取csv-option("multiLine", true)
时增加一个选项就可以解决问题。