【问题标题】:PySpark: how to map by first item in arrayPySpark:如何按数组中的第一项映射
【发布时间】:2016-06-30 10:08:00
【问题描述】:

我的初始 RDD 是一个块列表,其中每个块本身就是一个行列表。原来如此

[infos_var1, infos_var2]

每个块都是

var_name, var_value1, var_value2, var_value3

原始数据如下所示:

[[u'::852-YF-007\t',
  u'2016-05-10 00:00:00\t0',
  u'2016-05-09 23:59:00\t0',
  u'2016-05-09 23:42:00\t0'],
 [u'::852-YF-008\t',
  u'2016-05-10 00:00:00\t0',
  u'2016-05-09 23:59:00\t0',
  u'2016-05-09 23:42:00\t0']]

我的问题是如何使用映射函数提取变量名称(852-YF-007 和 852-YF-008)作为键和值作为带有时间戳的行(这里:每个变量 3 行?

也许有人可以提示我如何在我的 RDD 上使用地图。我在想这样的事情:

df.map(lambda (k, v): (v[0], v[0-vEND]))

PS:关于我如何创建初始 RDD 的原始帖子可以是 found here

【问题讨论】:

  • 类似这样的东西(我手头没有任何pyspark)? df.map(lambda i : (i[0], i[1:]))
  • 将其发布为答案,我会接受。

标签: python apache-spark mapreduce pyspark


【解决方案1】:

您拥有的是项目列表而不是元组

试试这个:

df.map(lambda i : (i[0], i[1:]))

对于 i[1:] 部分,在 here 中查找切片

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    • 2012-01-03
    • 2022-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多