【发布时间】:2018-10-25 05:14:51
【问题描述】:
我有一个 Spark (1.4) 数据框,其中列中的数据类似于“1-2-3-4-5-6-7-8-9-10-11-12”。我想将数据分成多列。请注意,字段的数量可以从 1 到 12 不等,它不是固定的。 附言我们正在使用 Scala API。
编辑:
编辑原始问题。我有如下分隔字符串:
"ABC-DEF-PQR-XYZ"
从此字符串中,我需要在单独的列中创建分隔字符串,如下所示。请注意,此字符串在 DF 的列中。
Original column: ABC-DEF-PQR-XYZ
New col1 : ABC
New col2 : ABC-DEF
New col3 : ABC-DEF-PQR
New col4 : ABC-DEF-PQR-XYZ
请注意,可以有 12 个这样的新列需要从原始字段派生。此外,原始列中的字符串可能会有所不同,即有时是 1 列,有时是 2,但最大值可以是 12。 希望我已经清楚地阐明了问题陈述。
谢谢!
【问题讨论】:
-
上面的“12个这样的列”是不是指的是原来的一串数字,想必不是你介绍的新文吧?
-
如果我理解正确,是的。对于 12 个新列,数据将从表的原始字段派生,并且该示例还描述了每个列将如何具有数据。如果字符串在示例列 10、11、12 中没有那么大的数据,那么这些字段将包含空白数据。所以原始字段中字符串的长度是动态的,不是固定的。
标签: scala apache-spark apache-spark-sql