在Scala中使用数据集创建CSV
我已经从scala中的数据集创建了CSV文件。它正在创建CSV文件,但文件大小为0字节 在读取dbutils.fs.head(csv_路径)时,它的给定错误 “java.lang.IllegalArgumentException:无法指向目录:csv\u路径” 有人能帮我吗?我认为CSV在创建文件时被破坏了。在Scala中使用数据集创建CSV,scala,csv,databricks,Scala,Csv,Databricks,我已经从scala中的数据集创建了CSV文件。它正在创建CSV文件,但文件大小为0字节 在读取dbutils.fs.head(csv_路径)时,它的给定错误 “java.lang.IllegalArgumentException:无法指向目录:csv\u路径” 有人能帮我吗?我认为CSV在创建文件时被破坏了。 有什么解决方案吗?我已经有一年没有使用过DataRicks了,但我记得,您可以像这样将数据帧保存到CSV # path to file path = 'file:/databricks/d
有什么解决方案吗?我已经有一年没有使用过DataRicks了,但我记得,您可以像这样将数据帧保存到CSV
# path to file
path = 'file:/databricks/driver/us.csv'
# load data using sqlContext
df = sqlContext.read.format("csv")\
.option("header","true")\
.option("inferSchema","true")\
.load(path)
# displat table format
display(df)
以CSV格式写入dataframe的内容:
df.write.csv("/data/home/csv")
将整个数据帧写入单个CSV文件:
df.coalesce(1).write.csv("/data/home/sample.csv")
为了完整起见,如果您想将CSV读入数据帧,可以这样做
# path to file
path = 'file:/databricks/driver/us.csv'
# load data using sqlContext
df = sqlContext.read.format("csv")\
.option("header","true")\
.option("inferSchema","true")\
.load(path)
# displat table format
display(df)
你的错误说明了一切<代码>csv_路径不是包含数据的文件,它是Spark保存csv文件的父目录。如果没有
coalesce(1)
,数据帧将在csv\u路径下写入许多csv文件,因为它期望每个Spark执行器将其分区写入该文件夹中自己的part-0001…csv
文件。注意,对于coal race,它仍然是一个目录,包含一个csv文件什么是“coal race”?因为我只希望有一个CSV文件。我怎样才能做到这一点?我是斯卡拉的新手。你能帮我吗?