我在我的azure databricks笔记本中使用scala作为编程语言,我的数据框架给了我准确的结果,但当我试图将同样的内容存储在csv中时,它将逗号(,)所在的单元格移位了。
spark.sql("""
SELECT * FROM invalidData
""").coalesce(1)
.write
.option("header", "true")
.format("com.databricks.spark.csv")
.mode("overwrite")
.save(s"$dbfsMountPoint/invalid/${fileName.replace(".xlsx", ".csv")}")
这里有一列数据,如256GB SSD, Keyb.:,所以当使用上述函数写入时,在另一个单元格显示逗号(,)后的字符串。
如果有任何火花内置的解决方案,请联系我们...
正如@Jasper-M指出的那样,你可以用一个自定义的分隔符来写输出的csv。
在这个例子中,我们使用
作为分隔符。
|
spark.sql(""" SELECT * FROM invalidData """).coalesce(1) .write .option("header", "true") .format("com.databricks.spark.csv") .option("sep", "|") .mode("overwrite") .save(s"$dbfsMountPoint/invalid/${fileName.replace(".xlsx", ".csv")}")
值得注意的是,
方法接收的是一个保存路径,而不是文件名本身。一个save
.coalesce(1)`)将被保存在这个路径下,把这个输入当作一个目录。.csv file (1 file since you set
要把
读回来,用spark。.csv