Is lineSep
该选项确实适用于 Spark 2.4 版本。
lineSep (default covers all \r, \r\n and \n): defines the line separator that should be used for parsing. Maximum length is 1 character.
我正在将 Dataframe 写入 GCS 存储桶位置,但它总是使用行分隔符将其写入为'\n'
only.
df
.select("COLLECTTIME","SITE","NETWORK")
.coalesce(1)
.limit(10)
.write
.option("header", false)
.option("compression", "gzip")
.option("lineSep","\r\n")
.csv(tmpOutput)
我在寻找CRLF
在每行的末尾。
我也在下面尝试过,但没有成功
df2.withColumn(df2.columns.last,concat(col(df2.columns.last),lit("\r")))
.write
.option("header", false)
.option("compression", "gzip")
.csv(tmpOutput)
我也在下面尝试过,但没有运气。
import org.apache.spark.sql.functions._
df2.withColumn(df2.columns.last,regexp_replace(col(df2.columns.last),"[\\r]","[\\r\\n]"))
.write
.option("header", false)
.option("compression", "gzip")
.csv(tmpOutput)
现在我想再次读取文件GCS
一旦写入并逐行读取它并在每个记录的末尾附加“\r”。不是简短而简单的东西Spark 2.4
。我只需要有'CRLF'
在每条记录的末尾。
读取和更新也是不可能的,因为存储在 gcs 存储桶上的对象是不可变的。我无法将文件保留在缓冲区中,因为它们的大小也稍大一些