十二.SparkSQL中json資料檔案轉換成parquet檔案
阿新 • • 發佈:2019-02-01
第一步
首先在本地建立一個json檔案,名字叫json_schema_infer.json,檔案中資料的格式如下:
{"name":"liguohui","gender":"M","height":160}
{"name":"zhangsan","gender":"F","height":175,"age":26}
{"name":"wangwu","gender":"M","height":180.3}
第二步
讀取json配置檔案,返回DataFrame型別的資料:
val df = spark.read.format("json").load("json_schema_infer.json")
第三步
把讀取到的json檔案中的資料寫到parquet檔案中:
df.write.format("parquet").save("/Users/fish/spark-sql/sparksql/tmp")
之後會在/Users/fish/spark-sql/sparksql/tmp
目錄下生成以.parquet結尾的檔案.
第四步
demo實戰示例:
import org.apache.spark.sql.SparkSession object SchemaInfoApp { def main(args: Array[String]): Unit = { val spark =SparkSession.builder().appName("SchemaInfoApp").master("local[2]").getOrCreate() val df = spark.read.format("json").load("json_schema_infer.json") df.write.format("parquet").save("/Users/fish/spark-sql/sparksql/tmp") df.printSchema() df.show() spark.stop() } }
第五步
schema方法的列印結果
show方法的列印結果:
至此就完成了由json檔案讀取轉換成DataFrame型別的檔案,再以parquet的形式寫入到檔案中的過程.