如何在pyspark中从具有不同值大小的字典中创建数据框?

时间:2020-05-01 20:18:29

标签: python dataframe dictionary pyspark

假设我们有一个像这样的python字典:

dict = {"person1" : (20, 17, 157, 31, 35), "person2" : (29 , 11) , "person3" : (200, 100 , 11)}

如何通过此字典在pyspark中创建一个数据框,该数据框具有字符串键和具有不同大小的元组作为其值?

我想要的输出是这样的:

    key   |     value
-------------------------------------
 person1  |   (20, 17, 157, 31, 35)
 ------------------------------------  
 person2  |       (29 , 11)
-------------------------------------
 person3  |     (200, 100 , 11)

我试图用以下代码做到这一点:

df = pd.DataFrame(dict)
ddf = spark.createDataFrame(df)

但它会引发这样的值错误:

ValueError:数组的长度必须相同

有人可以建议我吗?

1 个答案:

答案 0 :(得分:1)

尝试使用 @using EcommerceCore.Helper @if (TempData["Message"] != null) { var message = (PageMessageModel)TempData["Message"]; <div class="alert alert-light alert-@message.Type" role="alert"> <div class="alert-icon"><i class="flaticon-warning kt-font-brand"></i></div> <div class="alert-text"> @message.Text </div> </div> } + from_dict ,然后移置orient

df

dict = {"person1" : (20, 17, 157, 31, 35), "person2" : (29 , 11) , "person3" : (200, 100 , 11)} df = pd.DataFrame.from_dict(dict, orient='index').transpose() #creating spark dataframe sp_df = spark.createDataFrame(df).fillna({'person2':'','person3':''}) #cast all columns to int ddf=sp_df.select([col(c).cast("int") for c in sp_df.columns]) ddf.show() #+-------+-------+-------+ #|person1|person2|person3| #+-------+-------+-------+ #| 20| 29| 200| #| 17| 11| 100| #| 157| null| 11| #| 31| null| null| #| 35| null| null| #+-------+-------+-------+

UPDATE: