当前位置: 首页 > 知识库问答 >
问题:

Bag Pig中元组到元组中的元素

徐凌
2023-03-14

下面我有以下数据。

DUMP a;
(2013-12-25 03:00:55,1899454055,(0958847,090119960,095V987,09518X))
(2013-12-25 03:02:47,1899454055,(09588,090119,0959872P,095189))
(2013-12-25 03:04:00,1899454055,(09588,0901199,09598720P,0951890))
(2013-12-25 03:04:37,1899454055,(0958,0901199,095000P,095189100))
(2013-12-25 03:07:12,3929866522,(0096703))
(2013-12-25 03:00:55,1899454055,0958847)
(2013-12-25 03:00:55,1899454055,090119960)
(2013-12-25 03:00:55,1899454055,095V987)
(2013-12-25 03:00:55,1899454055,09518X)
@outputSchema("products:{t:(product:chararray)}")
def toBag(t):
     y = [(i,) for i in t]
     return y
  @outputSchema("ids:bag{t:(id:int)}")
  def splitT(ids):
      x = [(t,) for t in ids]
      return x

所以,我不知道为什么UDF可以使用int而不能使用CharArray。此外,我觉得可能有一种方法可以做到这一点,而不使用UDF..但不确定从哪里开始。对这里可能发生的事情有什么建议吗?

共有1个答案

雍河
2023-03-14

我想这是一个相当容易的..在将元组列表更改为包方面。

 a2 = foreach  generate a time, id_no, TOKENIZE($2);

但是,我仍然不适合使用Python UDF。如果有人能理解的话。我洗耳恭听。

 类似资料:
  • 本文向大家介绍从Python中的元组列表中找到包含给定元素的元组,包括了从Python中的元组列表中找到包含给定元素的元组的使用技巧和注意事项,需要的朋友参考一下 列表可以将元组作为其元素。在本文中,我们将学习如何识别包含特定搜索元素(字符串)的元组。 有条件 我们可以根据情况设计跟踪。之后,我们可以提及条件或条件组合。 示例 输出结果 运行上面的代码给我们以下结果- 带过滤器 我们将过滤器功能与

  • 问题内容: 我有一个看起来像元组的列表: 检查该元组中是否存在值的最佳方法是什么?例如,我想能够说: 并得到真 问题答案: 您正在寻找: 结合一个简单的生成器表达式,就可以完成任务。生成器表达式接受每个元组,如果包含则产生。然后在请求的第一个项目返回时返回(否则为)。因此,这就是您想要的。它也可以很好地读取- 如果有任何元组包含。 如果您要执行大量操作并且需要性能,那么可能值得设置所有值的集合以使

  • 问题内容: 我有一个功能: 排队 resultArray.append(tempDict) 我有一个错误: 调用中缺少参数“ ccomments”的参数 为什么?请帮助.... 问题答案: 在我看来,就像对待元组有点像可变参数,并试图扩展元组以匹配其自身的参数。它抱怨您的第二个参数,因为它只期待一个。我没有在任何地方看到这种行为的记录,因此我想说这是Swift中的错误。 使用追加运算符似乎没有这个

  • 的现有元组重载仅限于按索引或类型返回1个元素。想象一下,一个元组包含多个相同类型的元素,你想把它们都提取到一个新的元组中。 如何实现std::get的版本 不确定通过

  • 本文向大家介绍计算Python中元组列表中的元组出现,包括了计算Python中元组列表中的元组出现的使用技巧和注意事项,需要的朋友参考一下 列表由元组组成。在本文中,我们将计算列表中存在的唯一元组的数量。 使用defaultdict 我们将给定列表视为defaultdict数据容器,并使用in条件对其中的元素进行计数。 示例 输出结果 运行上面的代码给我们以下结果- 带柜台和链条 计数器和链函数是

  • 问题内容: 我有一个小整数列表,说: 我希望收集顺序对并返回一个包含从这些对创建的元组的新列表,即: 我知道必须有一种非常简单的方法来执行此操作,但不能完全解决。 谢谢 问题答案: 好吧,有一种非常简单但有些脆弱的方法,将其自身切片后再压缩。 如果您不知道,最后一个slice参数是“ step”。因此,我们从零(1、3、5)开始选择列表中的第二个项目。然后,我们执行相同的操作,但是从一个(2,4,