亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將數據幀的每個第 i 個元素映射到 PySpark 中范圍定義的另一個數據幀的鍵

如何將數據幀的每個第 i 個元素映射到 PySpark 中范圍定義的另一個數據幀的鍵

慕姐8265434 2023-07-11 15:02:26
我想做的事根據 df1 中的聚類定義將輸入文件 df0 轉換為所需的輸出 df2我擁有的df0 = spark.createDataFrame([('A',0.05),('B',0.01),('C',0.75),('D',1.05),('E',0.00),('F',0.95),('G',0.34), ('H',0.13)],("items","quotient"))df1 = spark.createDataFrame([('C0',0.00,0.00),('C1',0.01,0.05),('C2',0.06,0.10), ('C3',0.11,0.30), ('C4',0.31,0.50), ('C5',0.51,99.99)],("cluster","from","to"))我想要的是df2 = spark.createDataFrame([('A',0.05,'C1'),('B',0.01,'C1'),('C',0.75,'C5'),('D',1.05,'C5'),('E',0.00,'C0'),('F',0.95,'C3'),('G',0.34,'C2'), ('H',0.13,'C4')],("items","quotient","cluster"))筆記編碼環境是 Palantir 中的 PySpark。為了簡化編碼,可以調整 DataFrame df1 的結構和內容:df1 告訴 df0 中的項目應該鏈接到哪個集群。提前非常感謝您的時間和反饋!
查看完整描述

1 回答

?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

這是一個簡單的左連接問題。


df0.join(df1, df0['quotient'].between(df1['from'], df1['to']), "left") \

  .select(*df0.columns, df1['cluster']).show()


+-----+--------+-------+

|items|quotient|cluster|

+-----+--------+-------+

|    A|    0.05|     C1|

|    B|    0.01|     C1|

|    C|    0.75|     C5|

|    D|    1.05|     C5|

|    E|     0.0|     C0|

|    F|    0.95|     C5|

|    G|    0.34|     C4|

|    H|    0.13|     C3|

+-----+--------+-------+


查看完整回答
反對 回復 2023-07-11
  • 1 回答
  • 0 關注
  • 131 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號