我有一个包含8个.tsv文件的存档_2016_08_17.zip
。我需要提取名为hit_data.tsv
的文件并将其上传到bigquery。这些文件位于Google云平台上。
有人可以给我一个简单的程序来打开存档,找到正确的文件然后将其行打印到屏幕上。我可以从那里拿走它。我的想法是用包含gs://path_name/*hit_data.tsv
数据的缓冲区替换路径hit_data.tsv
。
public static void main(String[] args) {
Pipeline p = DataflowUtils.createFromArgs(args);
p
.apply(TextIO.Read.from("gs://path_name/*hit_data.tsv"))
\\.apply(Sample.<String>any(10))
.apply(ParDo.named("ExtractRows").of(new ExtractRows('\t', "InformationDateID")))
.apply(BigQueryIO.Write
.named("BQWrite")
.to(BigQuery.getTableReference("ddm_now_apps", true))
.withSchema(getSchema())
.withWriteDisposition(BigQueryIO.Write.WriteDisposition.WRITE_APPEND)
.withCreateDisposition(BigQueryIO.Write.CreateDisposition.CREATE_IF_NEEDED));
p.run();
}
答案 0 :(得分:0)
根据定义,您无法在不解压缩的情况下从zip存档中读取文件。
答案 1 :(得分:0)
我们有ZipFile课程。它具有entries方法,可返回条目的枚举。现在我们可以找到条目或使用getEntry方法,如果我们知道zip文件的名称和路径。
然后,最后一步,我们可以使用getInputStream方法只读取我们想要的条目。