0

我正在尝试从我的 s3 存储桶中的特定文件夹中读取数据。此数据采用镶木地板格式。为此,我正在使用awsrangler

import awswrangler as wr

# read data
data = wr.s3.read_parquet("s3://bucket-name/folder/with/parquet/files/", dataset = True)

这将返回一个熊猫数据框:

client_id   center  client_lat  client_lng  inserted_at  matrix_updated
0700292081   BFDR    -23.6077    -46.6617   2021-04-19     2021-04-19   
7100067781   BFDR    -23.6077    -46.6617   2021-04-19     2021-04-19   
7100067787   BFDR    -23.6077    -46.6617   2021-04-19     2021-04-19     

但是,我想将从我的 s3 存储桶中检索到的数据存储在 spark 数据框中,而不是 pandas 数据框。我试过这样做这是我自己的问题),但似乎不能正常工作。

我想知道是否有任何方法可以使用 awswrangler 将这些数据存储到 spark 数据框中。或者,如果您有其他选择,我想了解一下。

4

1 回答 1

1

我没有使用awswrangler。相反,我使用了在这个github上找到的以下代码:

myAccessKey = 'your key' 
mySecretKey = 'your key'

import os
os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages com.amazonaws:aws-java-sdk:1.10.34,org.apache.hadoop:hadoop-aws:2.6.0 pyspark-shell'

import pyspark
sc = pyspark.SparkContext("local[*]")

from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)

hadoopConf = sc._jsc.hadoopConfiguration()
hadoopConf.set("fs.s3.impl", "org.apache.hadoop.fs.s3native.NativeS3FileSystem")
hadoopConf.set("fs.s3.awsAccessKeyId", myAccessKey)
hadoopConf.set("fs.s3.awsSecretAccessKey", mySecretKey)

df = sqlContext.read.parquet("s3://bucket-name/path/")
于 2021-06-09T21:13:04.427 回答