Spark Dataframe的多行字符串不间断
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark Dataframe的多行字符串不间断相关的知识,希望对你有一定的参考价值。
我有一个多行字符串,我想转换为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的text
方法没有选项multiLine
:
val df = spark.read.option("multiLine", "true")
.option("quote", """)
.option("escape", """)
.csv("test1.txt")
您可以找到here每种方法可用的选项。
另一答案
Anika,这是一种创建具有多行String值的DataFrame的方法:
val str = """
|Here is the
|multiline
|example.
""".stripMargin
val df = Seq(
(str, 1)
).toDF("value", "doc")
df.show(false)
println(s"nb elements : ${df.count}")
Spark的输出非常丑陋,但这是:
+--------------------------------+---+
|value |doc|
+--------------------------------+---+
|
Here is the
multiline
example.
|1 |
+--------------------------------+---+
nb elements : 1
我想这是出于测试目的。
以上是关于Spark Dataframe的多行字符串不间断的主要内容,如果未能解决你的问题,请参考以下文章
Apache Spark 在 DataFrame 中插入多行
如何在 Spark Scala 中读取带有根元素的多行 json?
如何在 Scala(Spark 2.0)中将带有字符串的 DataFrame 转换为带有 Vectors 的 DataFrame
spark_sql_DataFromMysql_InferringSchema_SparkSqlSchema_SparkSqlToMysql_SparkStreaming_Flume_Poll(示例代