python - 使用 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()))
请帮忙
解决方案
推荐阅读
- c# - Unity3d如何使线从相机上的鼠标位置开始
- routing - 如何在 ONE 模拟器(DTN)中制作 hello 数据包?
- javascript - 检查提到的个人资料是否是机器人
- javascript - 在 javascript 函数中创建的对象/元素会发生什么?
- python - Python 代码生成错误数据
- swift - 精灵套件碰撞不起作用
- celery - 带有 Python 3 的 Librabbitmq 2.0.0 给出了 TypeError: can't pickle memoryview objects
- function - Lua 函数参数如何传递?
- c++ - 使用模板参数定义 Hana 结构
- r - 按列表中传递的条件过滤 data.table