Spark:目录

时间:2015-10-08 19:52:25

标签: apache-spark apache-spark-sql

我正在使用Spark 1.5.0亚马逊的EMR。我有多个属性文件,我需要在我的spark-submit程序中使用。我探讨了--properties-file选项。但它允许您从单个文件导入属性。我需要从结构如下的目录中读取属性:

├── AddToCollection
│   ├── query
│   ├── root
│   ├── schema
│   └── schema.json
├── CreateCollectionSuccess
│   ├── query
│   ├── root
│   ├── schema
│   └── schema.json
├── FeedCardUnlike
│   ├── query
│   ├── root
│   ├── schema
│   └── schema.json

在独立模式下,我可以通过指定本地系统中文件的位置来避免这种情况。但是它在群集模式下不起作用,我使用带有spark-submit命令的jar。 我怎么能在火花中做到这一点?

2 个答案:

答案 0 :(得分:1)

这适用于Spark 1.6.1(我没有测试过早期版本)

spark-submit支持--files参数,该参数接受以逗号分隔的“本地”文件列表以及JAR文件一起提交给驱动程序。

spark-submit \
    --class com.acme.Main \
    --master yarn \
    --deploy-mode cluster \
    --driver-memory 2g \
    --executor-memory 1g \
    --driver-class-path "./conf" \
    --files "./conf/app.properties,./conf/log4j.properties" \
    ./lib/my-app-uber.jar \
    "$@"

在此示例中,我创建了一个不包含任何属性文件的Uber JAR。部署应用程序时,app.properties和log4j.properties文件放在本地./conf目录中。

来自SparkSubmitArguments的来源

  

- 文件FILES
       以逗号分隔的文件列表,放在每个执行程序的工作目录中。

答案 1 :(得分:0)

我认为你可以将这些文件打包到你的JAR文件中,这个JAR文件将被提交给Spark集群。

要阅读这些文件,

您可以尝试java.util.Properties

并参考此Java Properties file examples

希望它有所帮助。