我想从以下列表中创建 2 个数据框:-
results = [
{'type': 'check_datatype',
'kwargs': {'table': 'cars', 'columns': ['car_id','index'], 'd_type': 'str'},
'datasource_path': '/cars_dataset_ok/',
'Result': False},
{'type': 'check_string_consistency',
'kwargs': {'table': 'cars', 'columns': ['car_id'], 'string_length': 6},
'datasource_path': '/cars_dataset_ok/',
'Result': False}
]
第一个数据框应该给出类型,id(它将是每个类型的增量id和唯一的)
第二个数据框应提供每种类型的参数详细信息,例如对于'check_datatype',
第一个数据帧应该有这样的输出 -
类型 |身份证
check_datatype,1
check_string_consistency,2
第二个数据帧应该有这样的输出 -
id|key|value|index
1,table,cars,1
1,columns,car_id,1
1,columns,index,2
1,dtype,str,1
2,table,cars,1
2,columns,car_id,1
2,string_length,6,1
不知何故,我能够使用以下方法创建第一个数据帧,但无法创建第二个数据帧 -
from pyspark.sql import functions as F
from pyspark.sql import Window
results = [[elt['type']] for elt in results]
checkColumns = ['type']
checkDF = spark.createDataFrame(data=results, schema=checkColumns)
checkDF=checkDF.withColumn("id",F.row_number().over(Window.orderBy(F.monotonically_increasing_id())))
checkDF.printSchema()
checkDF.show(truncate=False)