#java #apache-spark
#java #apache-spark
Вопрос:
это мой вклад
sno var1 var2 var3
1 a|b x|y p|q
2 a1|b1|c1 x1|y1|z1 p1|q1|r1
я хотел бы разбить все столбцы на отдельные строки, не нарушая sno, если я использую explode несколько раз, я получаю повторяющиеся строки
ожидаемый:
sno var1 var2 var3
1 a x p
1 b y q
2 a1 x1 p1
2 a2 x2 p2
3 a3 x3 p3
но я получаю, как показано ниже
sno var1 var2 var3
1 a
1 b
1 x
1 y
1 p
1 q
2 a1
2 b1
2 c1
.....
как я могу это исправить. Я ищу разрешение в java spark.
Комментарии:
1. Кажется, вы приложили некоторые усилия, если вы предоставите свой код для синтаксического анализа, мы могли бы помочь вам правильно его изменить
Ответ №1:
Я выполнил это следующим образом.
df = df.withColumn("var_arr",functions.explode(functions.arrays_zip(
functions.split(df.col("var1","\|"),
functions.split(df.col("var2","\|"),
functions.split(df.col("var3","\|")
)));
df = df.withColumn("v1", df.col("var_arr").getItem(0));
df = df.withColumn("v2", df.col("var_arr").getItem(1));
df = df.withColumn("v3", df.col("var_arr").getItem(2));
df.show();