如何使用 akka 流或 alpakka 从 S3 读取镶木地板文件
How to read parquet file from S3 using akka streams or alpakka
我正在尝试使用 the official doc 之后的 akka 流从 S3 读取 parque 文件,但出现此错误
java.io.IOException: No FileSystem for scheme: s3a
这是触发该异常的代码。我将非常感谢 clue/example 我应该如何正确地做到这一点
val path = s"s3a://bucketName/path/to/foo/part-00000-656418ee-7cc0-42ee-93e-aaa69ee6f916.c000.snappy.parquet"
val conf: Configuration = new Configuration()
conf.setBoolean(AvroReadSupport.AVRO_COMPATIBILITY, true)
val file = HadoopInputFile.fromPath(new Path(path), conf)
val reader: ParquetReader[GenericRecord] =
AvroParquetReader.builder[GenericRecord](file).withConf(conf).build()
//should read the file lines here but not there yet ...
您的类路径中很可能缺少 hadoop-aws
库。
看这里:https://hadoop.apache.org/docs/current/hadoop-aws/tools/hadoop-aws/index.html
此外,此 SO 还提供了一些有关如何设置凭据以访问 S3 的更多详细信息:
一旦 AvroParquetReader
正确初始化,您就可以根据 Alpakka Avro Parquet 文档 (https://doc.akka.io/docs/alpakka/current/avroparquet.html#source-initiation)
从中创建 Akka Stream 的 Source
我正在尝试使用 the official doc 之后的 akka 流从 S3 读取 parque 文件,但出现此错误
java.io.IOException: No FileSystem for scheme: s3a
这是触发该异常的代码。我将非常感谢 clue/example 我应该如何正确地做到这一点
val path = s"s3a://bucketName/path/to/foo/part-00000-656418ee-7cc0-42ee-93e-aaa69ee6f916.c000.snappy.parquet"
val conf: Configuration = new Configuration()
conf.setBoolean(AvroReadSupport.AVRO_COMPATIBILITY, true)
val file = HadoopInputFile.fromPath(new Path(path), conf)
val reader: ParquetReader[GenericRecord] =
AvroParquetReader.builder[GenericRecord](file).withConf(conf).build()
//should read the file lines here but not there yet ...
您的类路径中很可能缺少 hadoop-aws
库。
看这里:https://hadoop.apache.org/docs/current/hadoop-aws/tools/hadoop-aws/index.html
此外,此 SO 还提供了一些有关如何设置凭据以访问 S3 的更多详细信息:
一旦 AvroParquetReader
正确初始化,您就可以根据 Alpakka Avro Parquet 文档 (https://doc.akka.io/docs/alpakka/current/avroparquet.html#source-initiation)
Source