PyODPS學習:使用DataFrame實現SQL的IF判斷
在編寫SQL代碼時,可能會遇到這種場景(假如有兩個字段column1,column2,當字段1小於某個值時,字段2等於0).
1.sql語句可以使用CASE WHEN:
SELECT
column1,
(CASE WHEN column1<10 THEN 0 ELSE column2 END) AS column2
FROM tabelName;
2.使用IF語句
SELECT
column1,
IF(column1<10,0,column2) AS column2
FROM tabelName;
那這種情況在PyODPS的DataFrame對象怎麼操作呢?
from odps.df import DataFrame
#運行時顯示詳細信息
from odps import options
options.verbose = True
OdpsTable=odps.get_table('**一個表**')
InitialData = DataFrame(OdpsTable)
InitialData[InitialData['column1']<10,'column2']=0
其實ODPS是執行了IF語句,並返回了一個新表重新賦值給了InitialData。可以將options.verbose = True,查看PyODPS與ODPS交互過程中運行的命令。
更多技巧參考文檔:https://pyodps.readthedocs.io/zh_CN/latest/df-basic-zh.html
最後更新:2017-08-13 22:22:49