使用Spark重新格式化/移位时间序列数据的有效方法

塞尔隆

我想使用Spark建立一些时间序列模型。第一步是将序列数据重新格式化为训练样本。这个想法是:

原始顺序数据(每个t *是一个数字)

t1  t2  t3  t4  t5  t6  t7  t8  t9  t10

期望的输出

t1  t2  t3  t4  t5  t6
t2  t3  t4  t5  t6  t7
t3  t4  t5  t6  t7  t8
..................

如何在spark中编写函数来做到这一点。功能签名应该像

重新格式化(Array [Integer],n:Integer)

返回类型为Dataframe或Vector

我在Spark 1.6.1上尝试过的代码=========

val arraydata=Array[Double](1,2,3,4,5,6,7,8,9,10)
val slideddata = arraydata.sliding(4).toSeq
val rows = arraydata.sliding(4).map{x=>Row(x:_*)}
sc.parallelize(arraydata.sliding(4).toSeq).toDF("Values")

最后一行不能通过以下错误:

Error:(52, 48) value toDF is not a member of org.apache.spark.rdd.RDD[Array[Double]]
    sc.parallelize(arraydata.sliding(4).toSeq).toDF("Values")
Shiv4nsh

我无法弄清楚它的重要性,n因为它可以用作窗口大小以及它必须移动的值。

因此,有两种味道:

如果n是窗口大小:

def reformat(arrayOfInteger:Array[Int], shiftValue: Int) ={
sc.parallelize(arrayOfInteger.sliding(shiftValue).toSeq).toDF("values")
}

On REPL:

scala> def reformat(arrayOfInteger:Array[Int], shiftValue: Int) ={
     | sc.parallelize(arrayOfInteger.sliding(shiftValue).toSeq).toDF("values")
     | }
reformat: (arrayOfInteger: Array[Int], shiftValue: Int)org.apache.spark.sql.DataFrame

scala> val arrayofInteger=(1 to 10).toArray
arrayofInteger: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

scala> reformat(arrayofInteger,3).show
+----------+
|    values|
+----------+
| [1, 2, 3]|
| [2, 3, 4]|
| [3, 4, 5]|
| [4, 5, 6]|
| [5, 6, 7]|
| [6, 7, 8]|
| [7, 8, 9]|
|[8, 9, 10]|
+----------+

如果n是要移位的值:

def reformat(arrayOfInteger:Array[Int], shiftValue: Int) ={
val slidingValue=arrayOfInteger.size-shiftValue
sc.parallelize(arrayOfInteger.sliding(slidingValue).toSeq).toDF("values")
}

On REPL:

scala> def reformat(arrayOfInteger:Array[Int], shiftValue: Int) ={
     | val slidingValue=arrayOfInteger.size-shiftValue
     | sc.parallelize(arrayOfInteger.sliding(slidingValue).toSeq).toDF("values")
     | }
reformat: (arrayOfInteger: Array[Int], shiftValue: Int)org.apache.spark.sql.DataFrame

scala> val arrayofInteger=(1 to 10).toArray
arrayofInteger: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

scala> reformat(arrayofInteger,3).show(false)
+----------------------+
|values                |
+----------------------+
|[1, 2, 3, 4, 5, 6, 7] |
|[2, 3, 4, 5, 6, 7, 8] |
|[3, 4, 5, 6, 7, 8, 9] |
|[4, 5, 6, 7, 8, 9, 10]|
+----------------------+

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用 vim 有效地重新格式化关联数组

来自分类Dev

使用SQL重新格式化多功能时间序列数据

来自分类Dev

如何有效格式化json数据

来自分类Dev

使用dict键格式化字符串的有效方法,而无需重用间歇变量

来自分类Dev

更有效的方法来重新格式化具有不等量空白的文本文件,然后转换为csv

来自分类Dev

读取未格式化文件的最有效方法

来自分类Dev

如何有效处理熊猫中的时间序列数据

来自分类Dev

从时间序列数据计算转换矩阵的有效方法是什么?

来自分类Dev

什么是存储时间序列的有效方法?

来自分类Dev

什么是存储时间序列的有效方法?

来自分类Dev

如何使用QCustomPlot有效绘制大型时间序列?

来自分类Dev

使用 Alamofire 序列化有效 JSON 数据时出现“Garbage at end”错误

来自分类Dev

如何使用Ruby以有效的方式从字符串中获取所需的格式化哈希?

来自分类Dev

如何在bash中使用正好2个有效数字格式化浮点数?

来自分类Dev

如何使用AWK重新格式化表格数据?

来自分类Dev

重新格式化数据帧而不使用循环

来自分类Dev

使用Jquery重新格式化json数据

来自分类Dev

在powershell中将字符串转换为格式化的日期时间时出错“字符串未被识别为有效的日期时间”

来自分类Dev

使用CSS格式化有序列表

来自分类Dev

Python使用格式化方法格式化ASCII转义序列

来自分类Dev

jQuery高级输入掩码,用于格式化和掩码有效的BYTE序列“ 10 FE BA 59 6F”

来自分类Dev

重新格式化文本数据从整数转换为时间并使用 sed awk split 与日期连接

来自分类Dev

如何格式化数据以使其成为R中的时间序列数据

来自分类Dev

重新格式化熊猫数据框?

来自分类Dev

重新格式化输入的DATE数据

来自分类Dev

重新格式化JSON数据

来自分类Dev

重新格式化熊猫数据框

来自分类Dev

格式化答案以更正C中的有效位数

来自分类Dev

如何在C中格式化不带最高有效位的浮点数?

Related 相关文章

  1. 1

    使用 vim 有效地重新格式化关联数组

  2. 2

    使用SQL重新格式化多功能时间序列数据

  3. 3

    如何有效格式化json数据

  4. 4

    使用dict键格式化字符串的有效方法,而无需重用间歇变量

  5. 5

    更有效的方法来重新格式化具有不等量空白的文本文件,然后转换为csv

  6. 6

    读取未格式化文件的最有效方法

  7. 7

    如何有效处理熊猫中的时间序列数据

  8. 8

    从时间序列数据计算转换矩阵的有效方法是什么?

  9. 9

    什么是存储时间序列的有效方法?

  10. 10

    什么是存储时间序列的有效方法?

  11. 11

    如何使用QCustomPlot有效绘制大型时间序列?

  12. 12

    使用 Alamofire 序列化有效 JSON 数据时出现“Garbage at end”错误

  13. 13

    如何使用Ruby以有效的方式从字符串中获取所需的格式化哈希?

  14. 14

    如何在bash中使用正好2个有效数字格式化浮点数?

  15. 15

    如何使用AWK重新格式化表格数据?

  16. 16

    重新格式化数据帧而不使用循环

  17. 17

    使用Jquery重新格式化json数据

  18. 18

    在powershell中将字符串转换为格式化的日期时间时出错“字符串未被识别为有效的日期时间”

  19. 19

    使用CSS格式化有序列表

  20. 20

    Python使用格式化方法格式化ASCII转义序列

  21. 21

    jQuery高级输入掩码,用于格式化和掩码有效的BYTE序列“ 10 FE BA 59 6F”

  22. 22

    重新格式化文本数据从整数转换为时间并使用 sed awk split 与日期连接

  23. 23

    如何格式化数据以使其成为R中的时间序列数据

  24. 24

    重新格式化熊猫数据框?

  25. 25

    重新格式化输入的DATE数据

  26. 26

    重新格式化JSON数据

  27. 27

    重新格式化熊猫数据框

  28. 28

    格式化答案以更正C中的有效位数

  29. 29

    如何在C中格式化不带最高有效位的浮点数?

热门标签

归档