这可能很简单。
我需要创建一个类似于订单的变量,但订单仅在每隔一次观察后才会增加。
提前致谢!
date order
1-1-10 1
2-1-10 1
3-1-10 2
4-1-10 2
5-1-10 3
6-1-10 3
7-1-10 4
7-1-10 4
etc
答案 0 :(得分:2)
您将使用两个主要工具:sqoop import \
--connect jdbc:mysql://XXXXXXXXXXX \
--driver com.mysql.jdbc.Driver \
--username XXXX \
--password XXXX \
--query "SELECT DR_NUMBER,DATE_REPORTED,DATE_OCCURED,TIME_OCCURED,AREA_ID,AREA_N AME,REPORTING_DISTRICT,CRIME_CODE,CRIME_CODE_DESC,VICTIM_AGE,VICTIM _GENDER,VICTIM_DESCENT,ADDRESS,CROSS_STREET,AUTO_ID FROM la_crime WHERE YEAR = 2016 AND $CONDITIONS" \
--target-dir /user/sqoop_script \
-m 1
函数和sum语句。 sum语句看起来像是不正确的语法,但它是mod
的特殊情况。
retain
是一个特殊变量,充当您的观察计数器。每当您的_N_
步骤从上到下循环(即从data
到data
)时,run
会逐一递增。
通过在_N_
上使用mod
,我们可以为结果为1的每两个观察值增加一个计数器。换句话说,如果将观察计数除以2并得到余数为1,然后将{1}添加到_N_
。
例如:
order
最终,我们正在进行一项操作,我们在特定条件下增加某些值,继续前进并重复。
此代码的外观如下:
_N_ _N_/2 Remainder Operation Value
1 1/2 1 0+1 1
2 2/2 0 N/A 1
3 3/2 1 1+1 2
4 4/2 0 N/A 2
5 5/2 1 2+1 3
6 6/2 0 N/A 3
答案 1 :(得分:0)
在数据步骤中,您可以使用自动变量_n_
,例如ceil(_n_/2)
。
在SQL中,monotonic()
函数可以完成相同的工作。