Json 拆分后对字符串行的某些字段进行合并

Json 拆分后对字符串行的某些字段进行合并,json,scala,apache-spark,split,concat,Json,Scala,Apache Spark,Split,Concat,我有一个类似Json格式的文件,其中包含数百条推文(都有5个字段): […] { “idTweet”:“943959778006589441”, “文本”:“Lorem ipsum dolor sit amet…”, “idAuthor”:“91227631584421889”, “i原始”:“0”, “origAuthor”:“0” } [...] 我将文件的内容转换为RDD来处理它 val testRDD=spark.sparkContext.textFile(“类似json的_file.

我有一个类似Json格式的文件,其中包含数百条推文(都有5个字段):

[…]
{
“idTweet”:“943959778006589441”,
“文本”:“Lorem ipsum dolor sit amet…”,
“idAuthor”:“91227631584421889”,
“i原始”:“0”,
“origAuthor”:“0”
}
[...]
我将文件的内容转换为RDD来处理它

val testRDD=spark.sparkContext.textFile(“类似json的_file.txt”)
我把每一行字符串分开:

val tweets=testRDD.map(t=>t.split(“\”,\”)
.map(字段=>(字段(0)、字段(1)、字段(2)、字段(3)、字段(4)))
给出结果(方案)[ej.1]:

只要tweet行包含以下文本错误,一切正常:

{
“idTweet”:“943959778006589441”,
“文本”:“Lorem ipsum”、“dolor sit”、“amet”、“……”,
“idAuthor”:“91227631584421889”,
“i原始”:“0”,
“origAuthor”:“0”
}
如果我像以前一样,它会这样划分它:

field(0):  {"idTweet":"943959778006589441"
field(1):  "text":"Lorem ipsum"
field(2):  "dolor sit"
field(3):  "amet"
field(4):  "..."}

拆分字符串后,如何连接某些字段以将其合并为一个字段(字段文本)?类似于[ej.1]结果。

您说过格式是“类似Json”,这意味着它不是实际的Json。下面是一个简介:

{
  "idTweet":"943959778006589441",
  "text":"Lorem ipsum","dolor sit","amet","...",
  "idAuthor":"912276331584421889",
  "idOriginal":"0",
  "origAuthor":"0"
}
不是有效的JSON,因此如果您使用JSON解析器,它将相应地出错,并且可以根据您的选择进行处理

如果格式是JSON风格的,但不是真正的JSON,我会觉得这是一个需要在输入的过程中自定义验证格式并进行相应处理的情况


在上面的blurb中,应该确定它在您的格式中无效,并按照您选择的方式将其标记为无效,Spark作业继续进行到
RDD

中的下一条记录,看起来像json文件。为什么不使用json解析?
{
  "idTweet":"943959778006589441",
  "text":"Lorem ipsum","dolor sit","amet","...",
  "idAuthor":"912276331584421889",
  "idOriginal":"0",
  "origAuthor":"0"
}