我希望檢查包含 2 個 CSV 的 GB 中的大量資料。CSV 檔案沒有標題,并且僅包含具有一些復雜的數字和字母混合字串的列,例如
--------------------------------
| _c0 |
--- ---------------------------
| Hello | world | 1.3123.412 | B |
--- ----------------------------
到目前為止,我能夠轉換成資料幀,但不確定,有沒有辦法獲得 df2 中未找到的 df1 的行號和行
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()
file1 = 'file_path'
file2 = 'file_path'
df1 = spark.read.csv(file1)
df2 = spark.read.csv(file2)
df1.show(truncate=False)
uj5u.com熱心網友回復:
既然你還在學習 df1,讓我們一步一步來
------------------------------
|_c0 |
------------------------------
|Hello | world | 1.3123.412 | B|
|Hello | world | 1.3123.412 | C|
------------------------------
df2
------------------------------
|_c0 |
------------------------------
|Hello | world | 1.3123.412 | D|
|Hello | world | 1.3123.412 | C|
------------------------------
使用視窗函式生成行號
df1= df1.withColumn('id', row_number().over(Window.orderBy('_c0')))
df2= df2.withColumn('id', row_number().over(Window.orderBy('_c0')))
使用左半連接。這些連接不會保留來自正確資料幀的任何值。他們只比較值并保留在右側資料框中也可以找到的左側資料框值
df1.join(df2, how='left_semi', on='_c0').show(truncate=False)
------------------------------ ---
|_c0 |id |
------------------------------ ---
|Hello | world | 1.3123.412 | C|2 |
------------------------------ ---
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/486893.html
標籤:Python 熊猫 数据框 阿帕奇火花 pyspark
上一篇:過濾特定記錄和更早使用視窗
下一篇:創建pyspark資料框
