就我而言,我在 JavaSparkSQL 中使用数据集(数据框)。此数据集来自 JSON 文件。json 文件由键值组成。当我午餐查询时,查看我写的值,例如: SELECT key1.name from table示例 JSON 文件 { "key1": { "name": ".....",....} "key2": { "name":"....",....} }我的问题是,当我想加入所有关键时,我相信我应该使用像select key*.name from table但我不知道正则表达式!请帮忙
1 回答
森林海
TA贡献2011条经验 获得超2个赞
恐怕(火花)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();
!
添加回答
举报
0/150
提交
取消