SparkSql и REGEX - PullRequest
       4

SparkSql и REGEX

0 голосов
/ 04 марта 2019

в моем случае я использую набор данных (dataframe) в JavaSparkSQL.Этот набор данных получен из файла JSON.Файл json формируется из ключа-значения. Когда я запускаю запрос для просмотра значения, которое я пишу для примера:

 SELECT key1.name from table

пример файла JSON

 {
     "key1":
           { "name": ".....",....}
     "key2":
           { "name":"....",....}
    }

мой вопрос, когдаЯ хочу получить доступ к любому ключу, я считаю, что я должен использовать REGEX, как

select key*.name from table

, но я не знаю регулярное выражение!пожалуйста помогите

1 Ответ

0 голосов
/ 04 марта 2019

Боюсь, что такой синтаксис недоступен в (искривленном) SQL.

Хотя вы можете создать программный запрос.

Что-то вроде:

String sql = Stream.of(ds.schema().fieldNames()).filter(name -> name.startsWith("key")).collect(Collectors.joining(", ", "select ", " from table"));
System.out.println(sql);

или даже

Dataset<Row> result = spark.table("table").select(Stream.of(ds.schema().fieldNames()).filter(name -> name.startsWith("key")).map(name -> ds.col(name))
                .toArray(Column[]::new));
result.show();

HTH!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...