Как взорвать столбец массива в Spark java с помощью набора данных - PullRequest
1 голос
/ 05 августа 2020

У меня есть набор данных в искре java как: Текущий:

+--------------+--------------------+
|          x   |               YS.   |
+--------------+--------------------+
|x1            |   [Y1,Y2]          |
|x2            |   [Y3]             |

Я хочу взорвать этот набор данных и преобразовать массив в отдельную запись как «

Desired:

+--------------+--------------------+
|          x   |    YS.   
+--------------+--------------------+
|x1            |   Y1          
|X1            |.  Y2
|x2            |   Y3            

Я прочитал таблицу из базы данных и прочитал два столбца, но не могу использовать функцию разнесения.

DS = reader.option("table", "dummy").load()
                .select(X,YS).explode(??)

Как мне использовать разнесение и получить желаемый набор данных с помощью Java.

1 Ответ

1 голос
/ 05 августа 2020

В принципе, вам нужно выбрать новый столбец (а не YS столбец), где значение нового столбца будет разнесенным YS столбцом значение.

Исходя из кода из вопроса, это будет примерно так:

ds = reader.option("table", "dummy").load()
ds = ds.select(ds.col("X"), explode(ds.col("YS")).as("Y"))

Вот API do c: https://spark.apache.org/docs/2.4.6/api/java/org/apache/spark/sql/functions.html#explode -org. apache .spark. sql .Column-

...