Scala 带有Spark 2.4的lineSep选件

Scala 带有Spark 2.4的lineSep选件,scala,apache-spark,google-cloud-platform,google-cloud-storage,Scala,Apache Spark,Google Cloud Platform,Google Cloud Storage,是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. 我正在将数据帧写入GCS存储桶位置,但它总是仅使用行分隔符'\n'将其写入 df .select("COLLECTTIME","SITE

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.
我正在将数据帧写入GCS存储桶位置,但它总是仅使用行分隔符
'\n'
将其写入

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存储桶上的对象是不可变的。我无法将文件保存在缓冲区中,因为它们的大小也稍大一些

非常抱歉,但是,恕我直言,Spark允许您在问题中引用不同的分隔符:

lineSep (default covers all \r, \r\n and \n): defines the line separator that should be used for parsing. Maximum length is 1 character.
只用于阅读,不用于写作;在后一种情况下,
\n
是硬编码的,或者由于Spark版本
2.4
3.0
,您可以选择自定义行分隔符,但仅限于单个字符


请考虑阅读,它提供了整个问题的背景。也可能有帮助。

欢迎@vikrantrana。我明白了,伙计。。。我很抱歉不能为您提供更好的方法。我希望你能找到更好的解决办法。听到这个消息我很难过。很难说:请,你能更详细地描述一下你的用例吗?你的数据来自哪里?除了csv转换之外,是否还应以任何方式进行转换?您需要强制使用Dataproc吗?在Dataproc集群中,除了GCS之外,您还可以选择使用HDFS,或许您可以将其用于临时计算,然后在将其上载到GCS之前修改文件,调整行尾以满足您的需要。但是,您能否提供一些与这些问题相关的信息?例如,对于Python和Pandas,您可以选择
行结束符
rn
)。除了gcs客户端之外,它还可以单独使用,也可以与其他产品集成,例如提供批处理和流式数据处理功能的Apache Beam(GCP中的数据流)。请考虑读,(续)它说明了这个概念。根据您的使用情况,这些解决方案可能有用,也可能无用。为了使其正常工作,您需要正确配置Dataproc群集以安装
pandas
库。请参阅和中的相关信息。正如我所说,我不确定它是否会起作用,但这可能是一种可能性。如果有必要,尽管我的建议是首先创建一个小型POC