Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud dataflow Google dataflow可以根据第一列分割CSV文件吗?_Google Cloud Dataflow - Fatal编程技术网

Google cloud dataflow Google dataflow可以根据第一列分割CSV文件吗?

Google cloud dataflow Google dataflow可以根据第一列分割CSV文件吗?,google-cloud-dataflow,Google Cloud Dataflow,我需要编写一个数据流,该数据流使用单个GCS位置的CSV记录,然后根据CSV记录第一列的值将记录写入多个GCS位置 GoogleDataflow是否提供了Hadoop的等价物,使您能够在运行时为每条记录提供文件名 对于数据流来说,目前还不能完全通用。它在雷达上,您可以在此处跟踪进度/贡献: 如果您有一个小的、固定的可能输出位置集,那么有一个解决方法。您可以根据输出键将输出划分为单独的PCollection,然后获取每个PCollection并使用单独的TextIO.write转换将其写出。要进行

我需要编写一个数据流,该数据流使用单个GCS位置的CSV记录,然后根据CSV记录第一列的值将记录写入多个GCS位置


GoogleDataflow是否提供了Hadoop的等价物,使您能够在运行时为每条记录提供文件名

对于数据流来说,目前还不能完全通用。它在雷达上,您可以在此处跟踪进度/贡献:


如果您有一个小的、固定的可能输出位置集,那么有一个解决方法。您可以根据输出键将输出划分为单独的PCollection,然后获取每个PCollection并使用单独的TextIO.write转换将其写出。要进行分区,您可以使用或。

谢谢,@danielm。当我尝试使用多个端输出时,来自每个端输出的数据都会进入一个单独的TextIO.Write,我遇到了定义数据流的JSON大小限制:java.lang.RuntimeException:未能创建工作流作业:管道的序列化JSON表示的大小超过了允许的限制。dYeah,作业图的最大大小有一个硬限制,因此此解决方案仅适用于相对较少数量的不同接收器。您有多少个不同的位置?位置的数量在1000到10000之间相对较大。我还注意到,当数据流的TextIO.Write元素的数量为90时,我会出现“超出GC开销限制”错误。当我将写入程序的数量减少到12个时,我没有这个错误,但我得到了另一个错误:java.lang.IllegalStateException:未能实现视图。使用带有多个TextIO.Write的side输出只适用于几十个文件夹,这不符合我们的要求。我认为我们必须编写一个单独的MR作业,将记录整理到文件夹中。