【问题标题】:Apache Parquet data storage engine?Apache Parquet 数据存储引擎?
【发布时间】:2019-08-08 11:47:00
【问题描述】:

从链接sql-data-sources-parquet 我看到下面的代码 sn-p 存储数据拼花格式,但是 根据我对wiki 的理解,它只是一种格式,而不是存储引擎。所以 Parquet 将存储 某些存储引擎(如 HDFS/S3/Cassandra 等)上特定格式的数据。不是吗?所以我的问题是下面的代码 sn-p 将 存储数据,因为我没有看到任何提及 HDFS/S3/Cassandra 等存储引擎

Dataset<Row> peopleDF = spark.read().json("examples/src/main/resources/people.json");

// DataFrames can be saved as Parquet files, maintaining the schema information
peopleDF.write().parquet("people.parquet");

// Read in the Parquet file created above.
// Parquet files are self-describing so the schema is preserved
// The result of loading a parquet file is also a DataFrame
Dataset<Row> parquetFileDF = spark.read().parquet("people.parquet");

【问题讨论】:

    标签: java apache-spark parquet


    【解决方案1】:

    它是从 URL 方案推导出来的,例如 s3://examples/src/main/resources/people.jsonhdfs://examples/src/main/resources/people.json。从方案到org.apache.hadoop.fs.FileSystem 实现的映射在hadoop 配置中维护。例如

    <property><name>fs.s3.impl</name><value>org.apache.hadoop.fs.s3a.S3AFileSystem</value></property>
    

    会将s3://... 映射到S3AFileSystem,并且一些常见文件系统有默认值,以防它们未明确配置。

    【讨论】:

    • 但正如我在代码 sn-p 中所说,我提到我没有看到任何提及 S3/HDFS 。那么文件会存储在这里吗?
    • 不,我认为未指定方案时默认为本地文件系统。使用s3://some/path/people.parquet 存储到S3 或hdfs://some/path/people.parquet 存储到HDFS。
    猜你喜欢
    • 2011-08-12
    • 2014-10-21
    • 2011-09-05
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 2011-05-13
    相关资源
    最近更新 更多