使用 pyspark 将镶木地板文件(在 aws s3 中)存储到 spark 数据框中
store parquet files (in aws s3) into a spark dataframe using pyspark
我正在尝试从我的 s3 存储桶中的特定文件夹中读取数据。此数据采用镶木地板格式。为此,我使用 awswrangler:
import awswrangler as wr
# read data
data = wr.s3.read_parquet("s3://bucket-name/folder/with/parquet/files/", dataset = True)
这个returns一个pandas数据框:
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
但是,我不想使用 pandas 数据帧,而是将从我的 s3 存储桶中检索到的数据存储在 spark 数据帧中。我试过 (这是我自己的问题),但似乎无法正常工作。
我想知道是否有任何方法可以使用 awswrangler 将这些数据存储到 spark 数据框中。或者,如果您有其他选择,我想了解一下。
我没有使用 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/")
我正在尝试从我的 s3 存储桶中的特定文件夹中读取数据。此数据采用镶木地板格式。为此,我使用 awswrangler:
import awswrangler as wr
# read data
data = wr.s3.read_parquet("s3://bucket-name/folder/with/parquet/files/", dataset = True)
这个returns一个pandas数据框:
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
但是,我不想使用 pandas 数据帧,而是将从我的 s3 存储桶中检索到的数据存储在 spark 数据帧中。我试过
我想知道是否有任何方法可以使用 awswrangler 将这些数据存储到 spark 数据框中。或者,如果您有其他选择,我想了解一下。
我没有使用 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/")