【发布时间】:2019-09-25 08:16:04
【问题描述】:
我正在使用 azure SDK、avro-parquet 和 hadoop 库从 Blob Container 读取 parquet 文件。目前,我正在将文件下载到临时文件,然后创建 ParquetReader。
try (InputStream input = blob.openInputStream()) {
Path tmp = Files.createTempFile("tempFile", ".parquet");
Files.copy(input, tmp, StandardCopyOption.REPLACE_EXISTING);
IOUtils.closeQuietly(input);
InputFile file = HadoopInputFile.fromPath(new org.apache.hadoop.fs.Path(tmp.toFile().getPath()),
new Configuration());
ParquetReader<GenericRecord> reader = AvroParquetReader.<GenericRecord> builder(file).build();
GenericRecord record;
while ((record = reader.read()) != null) {
recordList.add(record);
}
} catch (IOException | StorageException e) {
log.error(e.getMessage(), e);
}
我想使用 azure blob 项中的 inputStream 读取此文件,而不将其下载到我的机器上。 S3有这种方式(Read parquet data from AWS s3 bucket),但是Azure有这种可能性吗?
【问题讨论】:
-
您的 Java 程序会在 Azure HDInsight 上运行吗?或者你只是想在本地机器上运行它?
-
大部分在本地,不仅在天蓝色云上,是的
标签: java azure streaming parquet