使用scala分割字符串并形成动态查询

时间:2018-10-16 07:57:33

标签: scala apache-spark-sql

我正在尝试读取配置文件,并在此基础上进行查询 在这样做的同时,我也需要注意空字段和无效字段...

配置文件

table_name / field1,,field2,field3 / Key_column

在这里我有一个空/空字符串,需要过滤掉它,最后我需要形成一个动态查询,例如

在这里,我修改了公司数​​据安全规范的查询范围

select a.* from table_name  a,(select " + key_col + ",MAX(" + key_column + ") as incremental_col FROM " +  table_name  group by  key_col) b where a." + field1 + "=b." + field2 + " and a." + field2 + "=b." + field2 + " and a." + field3 + "=b." + field3 + " and a." + key_column + "=b.incremental_col 

配置文件中可以有任意数量的文件。

到目前为止我尝试过的是:

 val source_data = sc.textFile("file://" + args(0)).collect();
 val table_name = source_data(i).split("/")(0);
 val key_col = source_data(i).split("/")(1);
 val Key_column = source_data(i).split("/")(2);
 val Key_col_1 = key_col.split(",").filter(s => s.trim().length() != 0);

但是我无法创建该动态查询..我需要将其关联的每个字段值。我认为应该运行一个循环,该循环应该检查字符串key_col_1的长度并创建动态字段。但是我无法获得确切的帮助

0 个答案:

没有答案