我正在构建一个spark Sql进程,我在其中创建了大约7-8个缓存表,并将它们注册为临时表,这些表是由一些巨大的RDBMS模型文件的几个连接派生的,因此我可以引用较小的数据块而不是比一个记录的重sql。我给出了一个例子,每个都有至少100-200MM的行。
JavaRDD<peopleObject> readFile = sc.textFile("some file").map("people object");
DataFrame schema1= sqlContext.createDataFrame()
registerTemptable
cachetable
count*
DataFrame schema2= sqlContext.sql(...) '
registerTempTable
cacheTable count*
....
....
DataFrame schema9 = sqlcontext.createDataFrame()
cachetable
count*
伪代码示例:如果输入文件column1 = XXX或column2-SSS,则连接到schema1,然后依次连接schema2和schema3,最后创建输出
现在我将有几个输入文件需要在管道系列中访问这些表。有人可以建议我一个更清洁的方法来实现这一目标吗?提前加入数据并缓存它们是否有助于输入文件中的大量数据实现更好的性能?如果您需要更多信息,请告诉我