我有一个地点列表(100,101,205,310等)。我想将此位置列表存储在使用此列表作为其查询的一部分的Spark作业外部的位置。然后,如果以任何方式修改列表,则不必单独触摸每个Spark作业,将存在编辑列表的全局位置,并且每个单独的作业将从该全局位置拉取。
例如:
其中位置在(100、101、205、310等)
将被替换为
Where location in('全局位置列表的路径')
我已经尝试创建一个单独的.conf文件来存储这些类型的值/列表,但不确定如何将新的.conf文件绑定到所有的job.conf文件。
1条答案
按热度按时间jxct1oxe1#
所以,这个SO问题Read files sent with spark-submit by the driver显示了围绕这个主题的一些讨论。当我与我一起工作的数据工程师交谈时,没有很好地理解。例如,本地文件系统文件与
--files
,.conf
问题以及Cluster
与Client
模式和加载目录的所有方面。但是,如果您查看允许的过滤值方法的简单Seq,例如从https://sparkbyexamples.com/spark/spark-isin-is-not-in-operator-example/
我的理解是你可以通过一个
--files
的方法用适当的编码生成一个Seq
来进行isin
的比较。这些天我使用Databricks笔记本,因为我厌倦了重新安装Hive Metastore等,所以我不检查--files方法,而只是使用分布式文件方法来过滤值,因为这是您最初学习的并且更容易:
我从DS开始,使用RDD,我遇到了一个我不确定的问题,但是RDD是遗留的,所以不相关。代码:
输入和结果:
在任何情况下,它都不会按照您想要的方式工作,从文件中包含排序。
模拟输入。
此外,what's the purpose and usecase of --files in spark-submit?也向您展示了一些观点。