0

我们有 3 个查询目前正在 HIVE 上运行。

使用 Spark 2.1.0

我们正在尝试使用 Spark SQL 运行它,但使用 SparkSession(比如用 Scala 代码包装一个 Jar,然后使用 Spark-Submit 提交)

现在举个例子:Query-1 使用 3 个表(表 - a、b 和 c)并插入到表中 --> Output_Table_1

Query-2 使用很少的其他表(执行连接)和output_table_1,它是从 Query-1 的输出中填充的。这给出了output_table_2

同样,Query-3 使用很少的表,可能使用也可能不使用output_table_1和/或output_table_2(我们不确定是否仍在设计)

目前我这样做的方式是将所有查询写入属性文件并def main使用读取它Typesafe.ConfigFactory(请建议是否有更好的方法)

def main(){}我正在做的是:

val query_1 = spark.sql('query1')
query_1.write.mode("overwrite").insertInto("output_table_1")

现在,当我执行以下步骤时,它会引发错误 - 未找到 output_table_1

val query_2 = spark.sql('query2')
query_2.write.mode("overwrite").insertInto("output_table_2")

同样对于第三个查询和表,我得到相同的错误。所以基本上我正在尝试链接查询并在后面的查询中使用初始查询的输出。我不能将查询分解成更小的数据框,因为它们很复杂。

如何继续这种情况。还让我知道实现这一目标的最佳实践是什么?

4

1 回答 1

0

你为什么不做

query_1.registerTempTable("output_table_1")
于 2017-11-15T23:56:56.760 回答