Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 触发数据帧的多行字符串无中断_Scala_Apache Spark_Apache Spark Sql - Fatal编程技术网

Scala 触发数据帧的多行字符串无中断

Scala 触发数据帧的多行字符串无中断,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.

我有一个多行字符串,我想转换成df

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")