Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark cassandra/spark查询中的日期加/减_Apache Spark_Cassandra - Fatal编程技术网

Apache spark cassandra/spark查询中的日期加/减

Apache spark cassandra/spark查询中的日期加/减,apache-spark,cassandra,Apache Spark,Cassandra,我有一个场景,需要连接多个表,并确定日期+另一个整数列是否大于另一个日期列 Select case when (manufacturedate + LeadTime < DueDate) then numericvalue ((DueDate - manufacturepdate) + 1) else PartSource.EffLeadTime) 选择case when(manufacturedate+LeadTimecol(“交货期”)、lit(数值) )。否则(col(“PartS

我有一个场景,需要连接多个表,并确定日期+另一个整数列是否大于另一个日期列

Select case when (manufacturedate + LeadTime < DueDate) then numericvalue ((DueDate - manufacturepdate) + 1) else PartSource.EffLeadTime)
选择case when(manufacturedate+LeadTime
有没有办法在spark sql中处理它

谢谢,
Ash

假设您的数据有一个数据框,您使用的是Scala,“另一个整数”表示天数,一种方法如下:

import org.apache.spark.sql.functions.\
val numericvalue=1
val列=当(
datediff(col(“DueDate”)、col(“manufacturedate”)>col(“交货期”)、lit(数值)
)。否则(col(“PartSource.EffLeadTime”))
val结果=df.withColumn(“newVal”,column)

所需的值将出现在一个名为“newVal”的新列中。

我尝试使用sqlcontext,其中有一个date\u add('date',integer)。date_add()是配置单元功能,它也适用于cassandra上下文

cc.sql("select date_add(current_date(),1) from table").show
谢谢
阿拉文思

你能详细说明一下这个问题吗。不工作时的情况如何?整数是否表示天数?还有,是Scala还是pyspark?谢谢,是的,我使用的是Scala,整数代表一些整数值,我们可以假设为天数。我没有为此设置数据框,我只是使用普通查询,我得到以下错误,由于数据类型不匹配,无法解析“(17038+5)”:不同类型的“(17038+5)”(日期和整数)我想,我会加入表,将其设为数据框并应用您的建议。@ashK您如何运行此查询?通过sqlContext.sql?如果是这样,您可以尝试
datediff(DueDate,manufacturedate)>LeadTime
我们使用NoSQL,我通过Cassandra上下文运行它。我可以在sqlContext中尝试。@ashK我不确定您是否可以尝试使用sqlContext,因为我认为您是在直接查询Cassandra表(因此使用Cassandra语法)。我认为您有两种选择:1)将数据带到数据框并尝试我的初始建议,或2)将表保存为Spark SQL临时表并使用sqlContext.SQL(使用Spark SQL语法),然后您将能够使用datediffYes,我正在尝试通过数据框,我得到一个错误,说递归值col需要在col上键入(“duedate”)我想提前期应该是一个“提前期”仪式吗?