为了从Amazon S3读取/写入数据,我在用sparkR配置hadoop时遇到一些问题。
例如,以下是在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")
有人可以帮我解决这个问题吗?
最佳答案
可以通过使用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
起作用了-大概在某个时候已更改。