开发者社区 > 大数据与机器学习 > 大数据计算 MaxCompute > 正文

我知道这个可能是由于list数据类型引起的。大数据计算MaxCompute这个有解决方案吗?

我有一段测试代码,其中df包括了各种不同的数据类型:
df_csv = '''
str_col,int_col,float_col,list_col,dict_col
a,1,1.0,[1],{'a': 1}
a,1,1.0,[1],{'a': 1}
,,,,
'''
df = pd.read_csv(io.StringIO(df_csv))

convert cols to coresponding dtype
def try_eval(x):
try:
return eval(x)
except:
return x

for col in df.columns:
df[col] = df[col].apply(try_eval)

mxdf = md.read_pandas(df)
mxdf.execute()

这段代码运行会报错:
ODPSError: ODPS-0422224: RequestId: 20240702191220ea35dc0b000005ab Tag: TUNNEL Endpoint: http://dt.cn-shenzhen.maxcompute.aliyun.com
ODPS-0422224: Write data failed - The data stream you provided was not well-formed or did not validate against schema. WriteRecordBatch failed. Data invalid: ODPS-0010000:InvalidArgument:table: tmp_mf_20240702104700218gssii5gn7n1_d6ff855ad28279d80fd7e20e81827104_0, partitions: [] list is not equal to string

我知道这个可能是由于list数据类型引起的。大数据计算MaxCompute这个有解决方案吗?
pandas df转为odps表的最佳实践应该是怎样的?

展开
收起
三分钟热度的鱼 2024-07-11 08:54:56 37 0
2 条回答
写回答
取消 提交回答
  • 根据您的描述,MaxCompute在处理Pandas DataFrame时,不支持将列表(list)转换为字符串类型。ODPS-0010000错误表明MaxCompute在尝试存储数据时遇到了无效的数据类型,特别是“list is not equal to string”。

    在将Pandas DataFrame转换为MaxCompute表时,最佳实践通常包括以下步骤:

    类型转换:确保Pandas DataFrame中的所有列都符合MaxCompute支持的数据类型。由于MaxCompute不支持list或dict,您需要将这些类型的数据转换为其他兼容类型,例如JSON字符串。

    使用as_type参数:在创建DataFrame时,使用as_type参数明确指定转换规则。例如,将list列转换为字符串,用JSON序列化。

    处理空值:确保所有列在转换时处理了缺失值,避免因空值导致的类型推断错误。

    验证数据:在写入MaxCompute之前,验证DataFrame数据符合MaxCompute的Schema。

    针对您的代码,可以尝试将list和dict类型数据转换为字符串(如JSON格式),然后使用as_type转换为MaxCompute支持的类型。例如:
    image.png

    2024-07-11 14:55:10
    赞同 8 展开评论 打赏
  • 这个原因还是因为list/map类型用来做dataframe column类型maxframe并不支持,因为兼容复杂度问题短期暂时没有支持计划,一个解法是你们把这些复杂类型先变成string,之后在apply函数中自己去把string类型转成list/map类型使用。 此回答整理自钉群“MaxFrame官方用户支持群”

    2024-07-11 09:08:16
    赞同 2 展开评论 打赏

MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。

相关产品

  • 云原生大数据计算服务 MaxCompute
  • 相关电子书

    更多
    Data+AI时代大数据平台应该如何建设 立即下载
    大数据AI一体化的解读 立即下载
    极氪大数据 Serverless 应用实践 立即下载