W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
Parquet是一種柱狀(columnar)格式,可以被許多其它的數(shù)據(jù)處理系統(tǒng)支持。Spark SQL提供支持讀和寫Parquet文件的功能,這些文件可以自動地保留原始數(shù)據(jù)的模式。
// sqlContext from the previous example is used in this example.
// createSchemaRDD is used to implicitly convert an RDD to a SchemaRDD.
import sqlContext.createSchemaRDD
val people: RDD[Person] = ... // An RDD of case class objects, from the previous example.
// The RDD is implicitly converted to a SchemaRDD by createSchemaRDD, allowing it to be stored using Parquet.
people.saveAsParquetFile("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 SchemaRDD.
val parquetFile = sqlContext.parquetFile("people.parquet")
//Parquet files can also be registered as tables and then used in SQL statements.
parquetFile.registerTempTable("parquetFile")
val teenagers = sqlContext.sql("SELECT name FROM parquetFile WHERE age >= 13 AND age <= 19")
teenagers.map(t => "Name: " + t(0)).collect().foreach(println)
可以在SQLContext上使用setConf方法配置Parquet或者在用SQL時運行SET key=value
命令來配置Parquet。
Property Name | Default | Meaning |
---|---|---|
spark.sql.parquet.binaryAsString | false | 一些其它的Parquet-producing系統(tǒng),特別是Impala和其它版本的Spark SQL,當寫出Parquet模式的時候,二進制數(shù)據(jù)和字符串之間無法區(qū)分。這個標記告訴Spark SQL將二進制數(shù)據(jù)解釋為字符串來提供這些系統(tǒng)的兼容性。 |
spark.sql.parquet.cacheMetadata | true | 打開parquet元數(shù)據(jù)的緩存,可以提高靜態(tài)數(shù)據(jù)的查詢速度 |
spark.sql.parquet.compression.codec | gzip | 設置寫parquet文件時的壓縮算法,可以接受的值包括:uncompressed, snappy, gzip, lzo |
spark.sql.parquet.filterPushdown | false | 打開Parquet過濾器的pushdown優(yōu)化。因為已知的Paruet錯誤,這個特征默認是關閉的。如果你的表不包含任何空的字符串或者二進制列,打開這個特征仍是安全的 |
spark.sql.hive.convertMetastoreParquet | true | 當設置為false時,Spark SQL將使用Hive SerDe代替內(nèi)置的支持 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: