2024-05-15 02:04:59 发布
网友
我正在使用Memsql::Streamliner::Transform(Python)实用程序。必须重写一个转换方法才能提供自定义转换功能。在
def transform(self, sql_context, dataframe, logger):
dataframe.column[0]是一个字节数组(JSON字符串)。在
dataframe.column[0]
如何将字节数组转换成具有命名列的数据帧?在
目标:访问已转换数据帧中的各个列。在
您可以使用dataframe.rdd访问底层rdd,并将其映射到包含列的列表中。通过提供列列表作为createDataframe的第二个参数,可以将生成的rdd转换回具有命名列的数据帧。在
dataframe.rdd
createDataframe
下面这样的方法应该有效:
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"])
您可以使用
dataframe.rdd
访问底层rdd,并将其映射到包含列的列表中。通过提供列列表作为createDataframe
的第二个参数,可以将生成的rdd转换回具有命名列的数据帧。在下面这样的方法应该有效:
相关问题 更多 >
编程相关推荐