Я использую spark 2.3
У меня есть такой DataFrame (в другой ситуации _c0 может содержать 20 внутренних полей):
_c0 | _c1
-----------------------------
1.1 1.2 4.55 | a
4.44 3.1 9.99 | b
1.2 99.88 10.1 | x
Я хочу разделить _c0 и создатьновый DataFrame, подобный этому:
col1 |col2 |col3 |col4
-----------------------------
1.1 |1.2 |4.55 | a
4.44 |3.1 |9.99 | b
1.2 |99.88 |10.1 | x
Я знаю, как решить эту проблему с помощью getItem ():
df = originalDf.rdd.map(lambda x: (re.split(" +",x[0]),x[1])).toDF()
# now, df[0] is a array of string , and df[1] is string
df = df.select(df[0].getItem(0), df[0].getItem(1), df[0].getItem(2), df[1])
Но я надеялся найти другой способ решения этой проблемы, потому что _c0 может содержатьболее 3 внутренних столбцов.
Есть ли способ использовать flatMap для генерации df?
Есть ли способ вставить df [1] в качестве внутреннего поля df [0]?
Есть ли способ использовать df [0] .getItem (), поэтому он возвращает всевнутренние поля?
Есть ли более простой способ создания фрейма данных?
Любая помощь будет оценена
Спасибо