sparkR 中的 Hadoop 配置

Hadoop configuration in sparkR


我在使用 sparkR 配置 hadoop 以便 read/write 来自 amazon S3 的数据时遇到一些问题。
例如,这些是在 pyspark 中工作的命令(用于解决相同的问题):

sc._jsc.hadoopConfiguration().set("fs.s3n.impl","org.apache.hadoop.fs.s3native.NativeS3FileSystem")
sc._jsc.hadoopConfiguration().set("fs.s3n.awsAccessKeyId", "myaccesskey")
sc._jsc.hadoopConfiguration().set("fs.s3n.awsSecretAccessKey", "mysecretaccesskey")
sc._jsc.hadoopConfiguration().set("fs.s3n.endpoint", "myentrypoint")

谁能帮我解决这个问题?

可以设置

<property>
    <name>fs.s3n.impl</name>
    <value>org.apache.hadoop.fs.s3native.NativeS3FileSystem</value>
</property>

在你的核心-site.xml(纱线配置)

可以通过使用 callJMethod (https://github.com/apache/spark/blob/master/R/pkg/R/backend.R#L31)

来实现更接近于 PySpark 的解决方案
> hConf = SparkR:::callJMethod(sc, "hadoopConfiguration")
> SparkR:::callJMethod(hConf, "set", "a", "b")
NULL
> SparkR:::callJMethod(hConf, "get", "a")
[1] "b"

更新:

hadoopConfiguration 对我不起作用:conf 虽然有效 - 大概它在某个时候发生了变化。