我希望在RDD数据类型中的内容周围加上引号。所以,我有一个文本文件,它被加载到RDD中。 这是 Scala 代码:
val file: String = "file:///data/book/starwars"
val bookStarWarsRDD = sc.textFile(file);
文本文件实际上只是星球大战故事的计划文本,例如绝地归来。 我想在第一个单词和最后一个单词上加上引号,例如:
"A long time ago in a galaxy far, far away...
然后,在最后的最后一个单词(或故事的最后(加上一个引号,例如:
...and the saga continues. The end.”
如何使用RDD执行此操作?
您应该
使用wholeTextFiles
来满足您的要求,因为wholeTextFiles
将文件作为Tuple2(filename, whole_texts)
读取。因此,您可以在whole_texts
的开头和结尾添加"
。
val file : String = "file:///data/book/starwars"
val bookStarWarsRDD = sc.wholeTextFiles(file).map(kv => """+kv._2+""").flatMap(_.split("n"));
bookStarWarsRDD.foreach(println)
您应该有所需的输出。
对于 RDD 使用:
val myDF = Seq(("Sentence1 something. Sentence2 something")).toDF("text")
// You may have to adjust index of text column by replacing x(0) with x(index in ur case)
val test = myDF.rdd.map{ case (x) => (x(0) , """ + x(0) + """) }
test.foreach(println)
指纹:
(Sentence1 something. Sentence2 something,"Sentence1 something. Sentence2 something")
如果可以使用数据帧:
val myDF = Seq(("Sentence1 something. Sentence2 something")).toDF("text")
val withQuotes = myDF.withColumn("textWithQuotes",concat(lit("""),col("text"),lit(""")) )
withQuotes.show(false)
scala> withQuotes.show(false)
+----------------------------------------+------------------------------------------+
|text |textWithQuotes |
+----------------------------------------+------------------------------------------+
|Sentence1 something. Sentence2 something|"Sentence1 something. Sentence2 something"|
+----------------------------------------+------------------------------------------+