【问题标题】:read csv from S3 as spark dataframe using pyspark (spark 2.4)使用 pyspark (spark 2.4) 从 S3 读取 csv 作为 spark 数据帧
【发布时间】:2020-02-04 17:43:35
【问题描述】:

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

我不需要使用任何 infer_schema、凭据 a.o.t。考虑到。并且 csv 文件不能作为粘合表被抓取。

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

在此先感谢您并致以最诚挚的问候

【问题讨论】:

    标签: amazon-web-services csv amazon-s3 pyspark pyspark-dataframes


    【解决方案1】:

    您可以如下设置某些属性

    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")
    

    【讨论】:

    • 嗨@ravi malhotra,我可以理解前两个配置和最后一个参数,其余的用于什么?
    猜你喜欢
    • 2018-02-14
    • 1970-01-01
    • 1970-01-01
    • 2015-12-04
    • 1970-01-01
    • 1970-01-01
    • 2019-09-08
    • 2022-09-25
    • 2017-06-21
    相关资源
    最近更新 更多