閱讀443 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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

  上一篇:go  MySQL 5.7 新時代
  下一篇:go  新零售時代來臨,生鮮行業如何實現電商O2O一體化管理