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

在大数据计算MaxCompute中,请教2个语法有没有在maxframe支持?

在大数据计算MaxCompute中,请教2个语法有没有在maxframe支持?:
bucket_list = ["12", "9", "6", "3", "4"]
data = data[data.bucket_id.isin(["12", "9", "6", "3", "4"]))] # 这个语法可以

尝试使用 data.query('bucket_id @in bucket_list") 这个语法不行,但是pandas支持,本意是想将filter条件都在query里面拼起来。单机例子:import pandas as pddata = pd.DataFrame({"bucket": [1,2,3,4,5], "value": [12, 34, 56, 78, 90]})data.head()bucket_list = [1, 2, 3]data.query("bucket in @bucket_list")YH@8月19日 10:36maxframe:import maxframe.dataframe as mdfrom maxframe import new_sessionfrom maxframe.config import optionsoptions.sql.enable_mcqa = Falsetable = o.create_table("test_source_table", "key string, v bigint", if_not_exists=True)with table.open_writer() as writer: writer.write([ ["a", 0], ["b", 1], ["c", 1] ])# 创建MaxFrame sessionsession = new_session(o)df = md.read_odps_table("test_source_table")key_list = ["a", "b"]res = df.query("key in @key_list")# 打印dataframe数据print(res.execute().fetch())# MaxFrame DataFrame数据写入MaxCompute表# md.to_odps_table(df, "test_prefix_source_table").execute()# 销毁 maxframe sessionsession.destroy()

展开
收起
我睡觉不困 2024-08-22 09:56:38 31 0
1 条回答
写回答
取消 提交回答
  • MaxFrame支持类似Pandas的isin()方法来过滤数据,例如data[data.bucket_id.isin(bucket_list)]。然而,它不直接支持Pandas的query()函数语法,如data.query('bucket_id @in bucket_list")。您需要使用query()函数时,可以将过滤条件直接作为字符串传递,如df.query("bucket_id in ('12', '9', '6', '3', '4')")。可参考文档

    2024-08-22 10:40:25
    赞同 10 展开评论 打赏

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

相关产品

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

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