5

我想使用 pyspark 从 s3 (s3://test-bucket/testkey.csv) 读取一个 csv 文件作为 spark 数据帧。我的集群在 spark 2.4 上运行。

我不需要考虑任何 infer_schema,凭据 aot。并且 csv 文件不能作为粘合表进行爬网。

您能否在此处粘贴基于 spark 会话并转换为 csv 到 spark 数据帧的 pyspark 代码?

非常感谢提前和最好的问候

4

1 回答 1

10

您可以设置某些属性如下

spark = SparkSession.builder \
            .appName("app_name") \
            .getOrCreate()

spark._jsc.hadoopConfiguration().set("fs.s3a.access.key", "mykey")
spark._jsc.hadoopConfiguration().set("fs.s3a.secret.key", "mysecret")
spark._jsc.hadoopConfiguration().set("fs.s3a.impl","org.apache.hadoop.fs.s3a.S3AFileSystem")
spark._jsc.hadoopConfiguration().set("com.amazonaws.services.s3.enableV4", "true")
spark._jsc.hadoopConfiguration().set("fs.s3a.aws.credentials.provider","org.apache.hadoop.fs.s3a.BasicAWSCredentialsProvider")
spark._jsc.hadoopConfiguration().set("fs.s3a.endpoint", "eu-west-3.amazonaws.com")

在此之后,您可以读取文件

csvDf = spark.read.csv("s3a://path/to/files/*.csv")
jsonDf = spark.read.json("s3a://path/to/files/*.json")
于 2019-10-07T13:40:07.673 回答