Как создать массив или коллекцию набора данных <Row>типа spark-dataframes? - PullRequest
0 голосов
/ 04 мая 2019

Я работаю в фильтрации avro-файла в спарк с использованием Java. Я получаю разные кадры данных для разных типов условий фильтрации, таких как (равно, больше, меньше), как показано ниже:

df1 = sourceDf.filter(sourceDf.col(fieldName).equalTo(value)),
df2 = sourceDf.filter(sourceDf.col(fieldName).gt(value)),
df3 = sourceDf.filter(sourceDf.col(fieldName).lt(value)) and so on....

Теперь я хочу собрать все кадры данных (df1, df2, df3, ...) `в одну коллекцию или массив, а не отдельные, как указано выше. пожалуйста, дайте мне знать, как я могу достичь этого, поскольку я новичок в Java и Apache-Spark.

я попробовал набор данных [] RecordCollection = новый набор данных [3]; но это не разрешено.

Исключение составляет: "невозможно создать общий массив набора данных"

1 Ответ

0 голосов
/ 04 мая 2019

Непонятно, чего вы пытаетесь достичь, так как примеры, которые вы публикуете, ничего не фильтруют, если объединить.но все же вы можете сделать:

union из API:

Dataset<Row> df = df1.union(df2).union(df3)

или из фильтра запуска, используя or:

Column c1 = sourceDf.col(fieldName).equalTo(value);
Column c2 = sourceDf.col(fieldName).gt(value);
Column c3 = sourceDf.col(fieldName).lt(value);
df1 = sourceDf.filter(c1.or(c2).or(c3))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...