我正在做一些数据预处理。每条线具有以下架构如何动态构建RDD或DataFrame?
<row Att1="...." Att2="..." Attn"...." />
但并非所有行中都存在所有属性。也就是说,有些行可能只有三个属性,而另一些行有五个属性,等等。此外,没有方式属性指示每行内存在多少属性。
我想形成一个RDD或DataFrame(prefrable)并对数据运行一些查询。不过,我找不到分割每一行的好方法。例如,按空间分割不起作用。我在处理中只需要一些属性。我尝试使用模式匹配来提取存在于所有行中的4个属性,如下所示,但失败。
val pattern = "Att1=(.*) Att3=(.*) Att10=(.*) Att11=(.*)".r
val rdd1 = sc.textFile("file.xml")
val rdd2 = rdd1.map {line => line match {
case pattern(att1,att2,att3,att4) => Post(att1,att2,att3,att4)
}
}
case class Post(Att1: String, Att3: String, Att10: String, Att11: String)
p.s.我正在使用scala。
这太宽泛了,无法在这里回答。另外,你到目前为止尝试过什么? – eliasah
我更新了我的帖子,至今为止我做了 –