Memsql::Streamliner Python转换

2024-04-29 07:40:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Memsql::Streamliner::Transform(Python)实用程序。必须重写一个转换方法才能提供自定义转换功能。在

def transform(self, sql_context, dataframe, logger):

dataframe.column[0]是一个字节数组(JSON字符串)。在

如何将字节数组转换成具有命名列的数据帧?在

目标:访问已转换数据帧中的各个列。在


Tags: 数据self功能实用程序dataframesql字节def
1条回答
网友
1楼 · 发布于 2024-04-29 07:40:01

您可以使用dataframe.rdd访问底层rdd,并将其映射到包含列的列表中。通过提供列列表作为createDataframe的第二个参数,可以将生成的rdd转换回具有命名列的数据帧。在

下面这样的方法应该有效:

def parse(row):
   bytestring = row[0]
   json_data = convert_bytes_and_parse_json(bytestring)
   return [ json_data["mycolumn1"], json_data["mycolumn2"] ]

parsedRDD = dataframe.rdd.map(parse)
parsedDf = sql_context.createDataframe(parsedRDD, ["mycolumn1", "mycolumn2"])

# now you can access columns by name
parsedDf.select(parsedDf["mycolumn1"])

相关问题 更多 >