从链接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");
答案 0 :(得分:1)
它是根据URL方案推导出来的,例如s3://examples/src/main/resources/people.json
或hdfs://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
,并且某些通用文件系统在没有明确配置的情况下具有默认值。