【问题标题】:Vertical Partitioning in Scalding烫发中的垂直分区
【发布时间】:2016-09-17 21:36:44
【问题描述】:

我有一个TypedTipe[(String, String, Long)],其中第一个字符串只能假设有限(~10)个值。我想对输出进行分区,以便为每种类型创建一个文件夹(即 10 个具有第一个字符串名称的文件夹)。这在 Hive 中很容易实现,但是我在 Scalding 中找不到优雅的方法。方法def partition(p: T => Boolean): (TypedPipe[T], TypedPipe[T]) 将管道分成两部分,但没有做我想要的。

编辑

  • 我正在使用烫伤v0.13.1
  • 我需要写一个PackedAvroSource

【问题讨论】:

    标签: java scala hadoop scalding data-partitioning


    【解决方案1】:

    如果您按要分区的字段分组,则可以根据需要使用PartitionedDelimitedSource 编写目录结构。例如:

    val pipe: TypedPipe[(String, String, Long)] = ...
    pipe
        .groupBy(_._1)
        .write(PartitionedDelimited[String, (String, String, Long)](args("output"), "%s"))
    

    【讨论】:

    • 我的Grouped[K, (String, String, Long)] 不允许我“写”...这可能是版本问题吗?另外,有没有办法用同样的技术写PackedAvroSource
    • 我在类路径中也找不到PartitionedDelimited。有PartitionedDelimitedSource,但需要更多参数。
    猜你喜欢
    • 2011-10-30
    • 1970-01-01
    • 2013-01-27
    • 1970-01-01
    • 1970-01-01
    • 2014-11-07
    • 1970-01-01
    • 1970-01-01
    • 2016-04-01
    相关资源
    最近更新 更多