我是 pyspark 新手,我需要帮助解决以下问题。
#d1:u1 | d2:u2 | d3:u3 #d4:u4 | d5:u5 #d6:u6 | d7:u7
#o/p #表1
#o / p
给定 FILE_1 中的数据,将其转换为表 1 和表 2 的所需输出
这适用于第一种情况,类似地,您也可以构建第二个表。它可能无法很好地处理大文件,并且解决方案可能会错过一些极端情况。
//content of input2.txt : #d1:u1|d2:u2|d3:u3#d4:u4|d5:u5#d6:u6|d7:u7
spark.read.textFile("input2.txt")
.flatMap(row => row.split("#"))
.flatMap(row => row.split("\\|"))
.map(row => (row.split(":")))
.filter(row => row.size >1)
.map(row => (row(0),row(1)))
.toDF("col1","col2")
.show(false)
/*
+----+----+
|col1|col2|
+----+----+
|d1 |u1 |
|d2 |u2 |
|d3 |u3 |
|d4 |u4 |
|d5 |u5 |
|d6 |u6 |
|d7 |u7 |
+----+----+
*/