如何在RDD数据类型的开头和结尾加上引号



我希望在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"|
+----------------------------------------+------------------------------------------+ 

最新更新