簡體   English   中英

如何將Pandas UDF應用到大型矩陣數據框

[英]How to apply pandas udf to large matrix dataframe

我真的是Spark和Pandas的新手。 我想對沒有任何列名的numpy.ndarray大矩陣應用pandas UDF。 我應該如何定義UDF函數的輸入?

這就是我所做的。 row是cassandra數據庫中的一行,“ b2”是數據庫中圖像的列名。

def normalize_i(I):
    iI=I
    minI=20#np.min(I)
    maxI=50#np.max(I)
    minO=0
    maxO=255
    iI = (256.0/65536)*iI
    io=(iI-minI)*(((maxO-minO)/(maxI-minI))+minO)
    return io

b2 = cPickle.loads(row.asDict()['b2'], encoding='bytes')
pdf = pd.DataFrame(b2,columns=["x"])
dfb2 = spark.createDataFrame(pdf)
dfb2.select(normalize_i(col("x")))

如預期的pd.DataFrame(b2,columns=["x"])由於b2是數組數組,因此pd.DataFrame(b2,columns=["x"])返回錯誤:ValueError:傳遞的值的形狀為(324,324),索引表示(324,1)

如何定義數據框的列名以及函數的輸入?

任何評論將不勝感激。 謝謝

您能詳細說明pdf的外觀嗎?

如果b2是324x324,我想您應該給324列名稱:

columns = ['x'+str(i) for i in range(b2.shape[1])]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM