相关疑难解决方法(0)

Spark窗口函数 - rangeBetween日期

我有一个DataFrame带有数据的Spark SQL ,我想要得到的是给定日期范围内当前行之前的所有行.因此,例如,我希望将7天之前的所有行放在给定行之前.我想我需要使用Window Function像:

Window \
    .partitionBy('id') \
    .orderBy('start')
Run Code Online (Sandbox Code Playgroud)

这就是问题所在.我想要有rangeBetween7天的时间,但是我在这个文件中找不到任何内容.Spark甚至提供这样的选择吗?现在我只是得到前面的所有行:

.rowsBetween(-sys.maxsize, 0)
Run Code Online (Sandbox Code Playgroud)

但想要实现以下目标:

.rangeBetween("7 days", 0)
Run Code Online (Sandbox Code Playgroud)

如果有人能帮助我,我将非常感激.提前致谢!

sql window-functions apache-spark apache-spark-sql pyspark

28
推荐指数
3
解决办法
2万
查看次数

在现有列的DataFrame中添加新列

我有一个带有datetime列的csv文件:"2011-05-02T04:52:09 + 00:00".

我正在使用scala,文件被加载到spark DataFrame中,我可以使用jodas时间来解析日期:

val sqlContext = new SQLContext(sc)
import sqlContext.implicits._
val df = new SQLContext(sc).load("com.databricks.spark.csv", Map("path" -> "data.csv", "header" -> "true")) 
val d = org.joda.time.format.DateTimeFormat.forPattern("yyyy-mm-dd'T'kk:mm:ssZ")
Run Code Online (Sandbox Code Playgroud)

我想基于datetime字段创建新列以进行时间序列分析.

在DataFrame中,如何根据另一列的值创建列?

我注意到DataFrame具有以下功能:df.withColumn("dt",column),有没有办法根据现有列的值创建列?

谢谢

scala apache-spark apache-spark-sql

3
推荐指数
1
解决办法
8430
查看次数