我有一个带有二进制字符串列的星星之火数据格式。我想在列的每个元素中添加一个索引为1的dataframe列。
我有一个获取索引的模式匹配函数,但是我需要将这个函数应用到列中。
def patternMatching(pattern: String, str: String): List[Int] =
pattern.r.findAllMatchIn(str).map(_.start).toList
patternMatching("1", "000110010010001110")最终,我要做的是得到下面的数据;
Binary_String | Vec
1010 | List(1,3)
1100 | List(1,2)
0010 | List(3)
0000 | List()发布于 2018-05-25 13:50:00
您可以定义一个UDF:
val patternMatching = udf((pattern: String, str: String) =>
pattern.r.findAllMatchIn(str).map(_.start).toList)将其应用于某一栏:
Seq("000110010010001110").toDF("x")
.select(patternMatching(lit("0"),col("x")).as("x"))
.show()https://stackoverflow.com/questions/50529741
复制相似问题