每次运行作业时,是否有任何可用于使输出进入单独的带时间戳(给出格式)目录的设置?
我使用以下Scalding代码来编写流输出:
val out = TypedPipe[MyType]
out.write(PackedAvroSource[MyType]("my/output/path"))
默认情况下,Scalding会替换HDFS中my/output/path
目录中的输出。我希望输出进入不同的my/output/path/MMDDyyyyHHmm/
路径,具体取决于作业运行的时间。我准备编写一些工具来自己添加一个时间戳,我宁愿使用一些现有的时间戳。如果可用的话。
答案 0 :(得分:0)
尝试将日期连接到目录。
Date date = new Date();
String direct = "my/output/" + date.toString();
out.write(PackedAvroSource[MyType](direct));
有关日期和时间的详细信息,请单击here
答案 1 :(得分:0)
您可以使用PartitionedDelimited
接收器写入多个目录。有关详细信息,请参阅https://github.com/twitter/scalding/blob/develop/scalding-core/src/main/scala/com/twitter/scalding/typed/PartitionedDelimitedSource.scala中的评论。
这会阻止您使用AVRO格式,但也许您可以编写PartitionedPackedAvro
?