我们有3个查询,目前正在运行的蜂箱。
使用Spark2.1.0
我们试图使用Spark来运行它,但是使用SparkSession(比如用Scala代码包装,生成一个Jar &然后使用Submit提交)
例如:查询-1使用3个表(表- a,b& c)并插入表-> Output_Table_1
Query-2很少使用其他表(执行Joins)和从Query-1输出中填充的output_table_1。这给了output_table_2
类似地,Query-3使用很少的表&可能使用也可能不使用output_table_1和/或output_table_2(we无法确定是否仍在设计)
目前,我这样做的方式是在一个属性文件中写入所有查询并使用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")类似地,对于第三个查询和表,我也得到了相同的错误。因此,基本上,我试图链接查询&在后面的查询中使用初始查询的输出。我不能将查询分解为较小的Dataframes,因为它们很复杂。
如何继续进行这样的设想。还有,让我知道什么是实现这一目标的最佳做法?
发布于 2017-11-15 23:56:56
你为什么不做
query_1.registerTempTable("output_table_1")https://stackoverflow.com/questions/47318437
复制相似问题