第一步
首先在本地创建一个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的形式写入到文件中的过程.