Apache spark Spark文件清理和转换 从第二行删除“\n”,并将第三行附加到第二行,如果列计数为5,则重新计算列计数,然后考虑为GooSyRoad和GooSyRead RDD。

Apache spark Spark文件清理和转换 从第二行删除“\n”,并将第三行附加到第二行,如果列计数为5,则重新计算列计数,然后考虑为GooSyRoad和GooSyRead RDD。,apache-spark,Apache Spark,示例代码段 请帮助实施案例3 def FilterData(rdd): row=rdd.split("\t") col_count=len(row) if col_count!=5 : return row textFile1=sc.textFile("hdfs://localhost:9000/A/test.tsv") Clean_RDD=textFile1.map(lambda x: x.replace("\\001|\\x0D",

示例代码段 请帮助实施案例3

def FilterData(rdd):
    row=rdd.split("\t")
    col_count=len(row)
        if col_count!=5 :
            return row


textFile1=sc.textFile("hdfs://localhost:9000/A/test.tsv")
Clean_RDD=textFile1.map(lambda x: x.replace("\\001|\\x0D",""))  # case 1
Badrow_RDD=Clean_RDD.map(FilterData) # case 2

下面是Scala中第三个问题的代码

Thanks 
Vishal

感谢Ishan提供的解决方案正在运行,但我的文件中有1000万条记录,因此收集和获取未优化使用,您可以建议其他替代数据1.splitAt(5)//我们可以将其存储为RDD
Thanks 
Vishal
val data=sc.textFile("file:/home/rieter/Test_Streaming/ab.txt").map(x=>x.split(" +").map(x=>x.trim)).filter(x=>(x.size<5)).flatMap(x=>x).collect
 val data1=data.take(data.length-(data.length%5))
 data1.splitAt(5)
   scala> data1.splitAt(5)
   res59: (Array[String], Array[String]) = (Array(aaa, ppp, 12345, ttt, bbb),Array(ccc, rrr, 12355, yyy, ddd))