Scala 触发数据帧的多行字符串无中断
我有一个多行字符串,我想转换成dfScala 触发数据帧的多行字符串无中断,scala,apache-spark,apache-spark-sql,Scala,Apache Spark,Apache Spark Sql,我有一个多行字符串,我想转换成df val string= """ Here is the multiline/multi paragraph example. """ 我正在寻找一个df,它看起来像: +--------------------+---+ | value|doc| +--------------------+---+ |Here is the | 1| |multiline/multipar..| | |example.
val string=
"""
Here is the
multiline/multi paragraph
example.
"""
我正在寻找一个df,它看起来像:
+--------------------+---+
| value|doc|
+--------------------+---+
|Here is the | 1|
|multiline/multipar..| |
|example. | |
+--------------------+---+
我得到的是:
+--------------------+---+
| value|doc|
+--------------------+---+
|Here is the | 1|
|multiline/multipar..| 2|
|example. | 3|
+--------------------+---+
这是我的密码:
val df = spark.read.option("multiLine", "true").text("test1.txt")
val df_id = df.withColumn("doc",monotonicallyIncreasingId)
df_id.show()
您必须引用输入字符串,并且应该使用
csv
读取器,因为DataFrameReader的文本
方法没有选项多行
:
val df = spark.read.option("multiLine", "true")
.option("quote", "\"")
.option("escape", "\"")
.csv("test1.txt")
您可以找到每种方法的可用选项 @jxc能够在上面的评论中帮助我,我只是在这里重写他们的解决方案,因为我没有选择将他们的评论显示为已接受的解决方案
val df = spark.read.option("wholetext", "true").text("test1.txt")
val df_id = df.withColumn("doc",monotonicallyIncreasingId)
df_id.show()
及
两者都起作用了 它是多行字符串还是记录可能位于多行的文本文件?它是多行字符串。首先,我尝试了Seq((1,string))toDF(colname1,colname2)。由于这不起作用,我尝试将字符串写入文本文件,并使用read.textFile.for spark 2.4+,使用lineSep,例如段落模式
val df=spark.read.option(“lineSep”,“\n\n”).text(“test1.txt”)
。或者任何不会显示在文本中的子字符串/字符将所有文本放入一行。或者选项(“wholetext”,“true”)
将所有文本读取到一条记录(“wholetext”,“true”)成功,谢谢!
val input = sc.wholeTextFiles("test1.txt").toDF("text", "doc")