使用pyspark(spark 2.4)从S3读取csv作为spark数据帧

C.T*_*mas 3 csv amazon-s3 amazon-web-services pyspark pyspark-dataframes

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

我不需要考虑任何 infer_schema、凭据 aot。并且 csv 文件不会作为胶水表被抓取。

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

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

rav*_*tra 7

您可以设置某些属性如下

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")
Run Code Online (Sandbox Code Playgroud)

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

csvDf = spark.read.csv("s3a://path/to/files/*.csv")
jsonDf = spark.read.json("s3a://path/to/files/*.json")
Run Code Online (Sandbox Code Playgroud)

  • 嗨@ravi malhotra,我可以理解前两个配置和最后一个参数,其余的是什么? (3认同)