在我的情况下,我在JavaSparkSQL中使用数据集(数据框)。 该数据集来自JSON文件。 json文件是由键值组成的。当我午餐查询以查看我为示例编写的值时:
SELECT key1.name from table
示例JSON文件
{
"key1":
{ "name": ".....",....}
"key2":
{ "name":"....",....}
}
我的问题是,当我想全部使用密钥时,我相信我应该使用REGEX之类的
select key*.name from table
但是我不知道正则表达式! 请帮助
答案 0 :(得分:0)
恐怕(spark)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!