【问题标题】:Spark Scala API: Map PairDStream to another PairDStreamSpark Scala API:将 PairDStream 映射到另一个 PairDStream
【发布时间】:2015-11-23 05:12:40
【问题描述】:

我正在使用 Spark 的 Java API。现在我需要将我的 Java 应用程序“翻译”成 Scala 代码,因为我想试用 Apache Zeppelin。 我有一个 PairDStream (1.1.1.123,(1,1,1,1)) 并且需要将它的对映射到一个形式为 (1.1.1,(1,1, 1,1))(剪掉第一对键中的“123”)。有人可以提供一个线索如何做到这一点或如何将一对映射到scala中的另一个?我使用 ma​​p 函数创建了第一对。谢谢!

【问题讨论】:

  • 不清楚您要做什么。您只是想删掉 123,还是已经创建了并且您想将它们连接在一起。您可以发布一个示例以及您尝试过的内容吗?
  • 我已经创建了一个 PairRDD,其键为 1.1.1.123,值为 1,1,1,1。现在我想用较短的密钥 1.1.1 将此对映射到新的对。我想删除密钥的第四位数字,不加入。谢谢
  • 您是否尝试过使用其他地图...?这听起来很简单……
  • 我尝试了另一个地图函数调用。但是我遇到的问题是获取该对的键和值对象,以便以后能够将它们映射到新的对...下面的答案是我需要的信息,感谢您的线索!

标签: apache-spark scala-java-interop apache-zeppelin


【解决方案1】:

试试这个(假设你的 IP 地址是一个字符串):

val newPairs = oldPairs.map { case (ipAddress, values) => (ipAddress.substring(0, ipAddress.lastIndexOf(".")) , values) }

【讨论】:

  • 地图 {case (k,v) => (..., ...) } 为我做了,谢谢!我不知道获取该对的键/值部分的案例语句。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多