我有一个包含两列的表,一个是id,另一个是值。我的值列包含1488个字符。我必须将此列拆分为每行12个字符的多行。示例:
数据框:
ID Value
1 123456789987653ABCDEFGHI
预期输出:
ID Value
1 123456789987
1 653ABCDEFGHI
如何在Spark中完成
?我有一个包含两列的表,一个是id,另一个是值。我的值列包含1488个字符。我必须将此列拆分为每行12个字符的多行。示例:
数据框:
ID Value
1 123456789987653ABCDEFGHI
预期输出:
ID Value
1 123456789987
1 653ABCDEFGHI
如何在Spark中完成
?创建一个UDF
,以使用grouped
将字符串分成相等长度的部分。然后在结果的字符串列表上使用explode
将其展平。
import org.apache.spark.sql.functions._
def splitOnLength(len: Int) = udf((str: String) => {
str.grouped(len).toSeq
})
df.withColumn("Value",explode(splitOnString(12)($"Value")))