Apache Parquet数据存储引擎?

时间:2019-03-18 06:35:09

标签: java apache-spark parquet

从链接sql-data-sources-parquet中,我看到下面的代码片段存储了数据拼花格式,但是 根据{{​​3}}的理解,这仅仅是一种格式,而不是存储引擎。所以实木复合地板将存储 在某些存储引擎(例如HDFS / S3 / Cassandra等)上以特定格式显示的数据,不是吗?所以我的问题是下面的代码片段将在哪里 存储数据,因为我看不到诸如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");

1 个答案:

答案 0 :(得分: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,并且某些通用文件系统在没有明确配置的情况下具有默认值。