我有一个包含许多sql查询的sql文件,如下所示:
CREATE TABLE ..... ; ALTER TABLE .... ;
我想在一个单独的数据库中执行这些查询 spark.sql 调用java如何实现这一点?谢谢
spark.sql
2wnc66cl1#
spark不支持通过一次调用执行多个查询 spark.sql (见此答案)。如果你不介意的话 spark.sql 你可以多次阅读 .sql 将文件转换为字符串,将其拆分为单独的查询,然后将其传递给 spark.sql ,就像这样:
.sql
import java.nio.file.*; public static void main(String[] args) { String[] commands; try { Path sqlPath = FileSystems.getDefault().getPath("query.sql"); String sql = new String(Files.readAllBytes(sqlPath)); commands = sql.split(";", 0); } catch (Exception e) { System.out.println("failed to read SQL file"); return; } for (int i = 0; i < commands.length; i++) { spark.sql(commands[i]); } }
1条答案
按热度按时间2wnc66cl1#
spark不支持通过一次调用执行多个查询
spark.sql
(见此答案)。如果你不介意的话spark.sql
你可以多次阅读.sql
将文件转换为字符串,将其拆分为单独的查询,然后将其传递给spark.sql
,就像这样: