【问题标题】:Assign unique numeric values to distance strings (Spark)为距离字符串分配唯一的数值 (Spark)
【发布时间】:2017-10-30 21:31:29
【问题描述】:

我有一个充满字符串的文件(它的 .nt 文件带有 URI),为简单起见,我想将字符串值更改为数值。

应考虑两个因素: 为每个不同的字符串生成一个唯一的数值。 从生成的数字中恢复原始字符串的能力。

我的目的是将文件转换为数值,然后执行一定的计算(如果值是数字,这将很快)然后将结果从数字反转为字符串。

我试过 HashCode() 但它不能保证唯一性和不可逆性。

有什么推荐的吗? 我的代码在 Spark 、 Scala 和 Java 下运行。

谢谢

【问题讨论】:

    标签: java scala apache-spark intellij-idea


    【解决方案1】:

    请使用 spark 的 ZipWithIndex 功能创建唯一索引。

    挑战是从数字中取回字符串, 您必须先保存字符串和 zipIndex(或保存在内存中),这样 稍后您可以使用此临时查找表连接输出。

    【讨论】:

    • 能否请您稍微澄清一下您的观点。我已经尝试过 ZipWithIndex,但它没有给我一个独特的 int
    • val days = Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday") days.zipWithIndex.foreach { case(day , count) => println(s"$count is $day") }
    猜你喜欢
    • 2021-08-05
    • 2014-05-22
    • 2021-12-27
    • 2018-10-05
    • 2015-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多