Apache Parquet 是一种流行的列式存储格式。Spark原生支持Parquet文件格式的读写
基于上一节的file.json
文件,将其转换成parquet文件:
val jsDF = spark.read.json("/home/ec2-user/file.json")
jsDF.write.parquet("/home/ec2-user/parquet_file")
Spark将结果写入了文件夹:
[ec2-user@ip-172-31-45-168 ~]$ ls
file.avro multi-line.json spark-3.5.0-bin-hadoop3
file.json parquet_file spark-3.5.0-bin-hadoop3.tgz
[ec2-user@ip-172-31-45-168 ~]$ cd parquet_file/
[ec2-user@ip-172-31-45-168 parquet_file]$ ls -la
total 44
drwxr-xr-x. 2 ec2-user ec2-user 16384 Mar 4 01:19 .
drwx------. 7 ec2-user ec2-user 16384 Mar 4 01:19 ..
-rw-r--r--. 1 ec2-user ec2-user 8 Mar 4 01:19 ._SUCCESS.crc
-rw-r--r--. 1 ec2-user ec2-user 32 Mar 4 01:19 .part-00000-b10bc4a7-5355-4b88-9d59-7beeec07b193-c000.snappy.parquet.crc
-rw-r--r--. 1 ec2-user ec2-user 0 Mar 4 01:19 _SUCCESS
-rw-r--r--. 1 ec2-user ec2-user 2736 Mar 4 01:19 part-00000-b10bc4a7-5355-4b88-9d59-7beeec07b193-c000.snappy.parquet
val parquetDF = spark.read.parquet("/home/ec2-user/parquet_file")
parquetDF.show
parquetDF.printSchema