首页 > 解决方案 > 使用 Boto3 将 S3 对象转换为 pyspark 数据帧:TypeError:路径只能是字符串、列表或 RDD

问题描述

我正在阅读 S3(minio) 对象并尝试将其转换为 pyspark 数据帧。我正在尝试这个。

import boto3
from botocore.client import Config
s3 = boto3.client('s3',endpoint_url='Endpoint URL',aws_access_key_id='key',aws_secret_access_key='secret key',config=Config(signature_version='s3v4'),region_name='us-east-1')
obj = s3.get_object(Bucket='bucket_name', Key='file_name')
df = spark.read.option('header','true').option('inferSchema','true').csv(io.BytesIO(obj['Body'].read()))

但我收到以下错误 -

df = spark.read.option('header','true').option('inferSchema','true').csv(io.BytesIO(obj['Body'].read()))
'TypeError: path can be only string, list or RDD\n'])

相同的代码适用于读取 python 3 pandas 数据帧,但不适用于 pyspark 数据帧以下工作正常 -

df = pd.read_csv(io.BytesIO(obj['Body'].read()))

请帮忙

标签: pythonapache-sparkamazon-s3pysparkboto3

解决方案


推荐阅读