2016-07-14 54 views
0

下面的代碼確實聚集,並與表數據類型創建一個列:有列列表數據類型:星火HiveContext

groupBy(
      "column_name_1" 
     ).agg(
      expr("collect_list(column_name_2) " 
       "AS column_name_3") 
     ) 

所以,現在看來,這可能有「名單」作爲一個數據幀列數據類型。

我想知道如果我可以寫一個udf,返回自定義數據類型,例如python字典?

+0

的可能的複製[如何定義在星火SQL自定義類型的架構?](http://stackoverflow.com/questions/32440461/how-to-define-schema-for-custom-type-in​​-spark- SQL) – zero323

回答

0

該列表是spark的Array數據類型的表示。你可以嘗試使用Map數據類型(pyspark.sql.types.MapType)。 創建它的東西的一個例子是:pyspark.sql.functions.create_map它從幾個列創建一個地圖 這就是說,如果你想創建一個自定義的聚合函數來執行任何在pyspark.sql.functions中沒有的東西,你會需要使用scala。