Apache spark 使用Spark数据帧,在窗口函数中使用间隔的示例
我有一个订单数据框架(contactidid、orderdate、orderamount),我想要一个新的列,其中包含每个订单在此订单之前12个月内联系人的所有订单金额之和。我认为最好的方法是在Spark>1.5中使用窗口功能和新的间隔功能 但我很难做到这一点或找到文件。我最好的猜测是:Apache spark 使用Spark数据帧,在窗口函数中使用间隔的示例,apache-spark,Apache Spark,我有一个订单数据框架(contactidid、orderdate、orderamount),我想要一个新的列,其中包含每个订单在此订单之前12个月内联系人的所有订单金额之和。我认为最好的方法是在Spark>1.5中使用窗口功能和新的间隔功能 但我很难做到这一点或找到文件。我最好的猜测是: val dfOrdersPlus = dfOrders .withColumn("ORDERAMOUNT12MONTH", expr("sum(ORDERAMOUNT) OVER (PAR
val dfOrdersPlus = dfOrders
.withColumn("ORDERAMOUNT12MONTH",
expr("sum(ORDERAMOUNT) OVER (PARTITION BY CONTACTID ORDER BY ORDERDATE RANGE BETWEEN INTERVAL 12 months preceding and INTERVAL 1 day preceding)"));
但我得到一个RuntimeException:“预期输入结束”。关于这个“expr”我做错了什么,以及在哪里可以找到关于新间隔文字的文档,有什么想法吗?目前:
中不支持窗口功能。要使用窗口函数,您必须在已注册的表上使用expr
DSL或原始SQL(仅限Spark 1.5和1.6)DataFrame
- 窗口函数仅支持数字类型的范围间隔。不能使用
/DateType
和dateTimestampType
表达式。(Spark 1.5、1.6、2.0.0-预览版)INTERVAL