json File æ¥æç±»å ææ ·å¤çï¼ææ ·ä»å符åï¼è½¬æ¢ä¸ºDateæDateTimeç±»åï¼
jsonæ件å¦ä¸ï¼æåç¬¦æ ¼å¼çæ¥æç±»å
```
{ "name" : "Andy", "age" : 30, "time" :"2015-03-03T08:25:55.769Z"}
{ "name" : "Justin", "age" : 19, "time" : "2015-04-04T08:25:55.769Z" }
{ "name" : "pan", "age" : 49, "time" : "2015-05-05T08:25:55.769Z" }
{ "name" : "penny", "age" : 29, "time" : "2015-05-05T08:25:55.769Z" }
```
é»è®¤æ¨æµçSchemaï¼
```
root
|-- _corrupt_record: string (nullable = true)
|-- age: long (nullable = true)
|-- name: string (nullable = true)
|-- time200: string (nullable = true)
```
æµè¯ä»£ç
```
val fileName = "person.json"
val sc = SparkUtils.getScLocal("json file æµè¯")
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val jsonFile = sqlContext.read.json(fileName)
jsonFile.printSchema()
```
##解å³æ¹æ¡
### æ¹æ¡ä¸ãjsonæ°æ® æ¶é´ä¸º long ç§æ毫ç§
### æ¹æ¡äºãèªå®ä¹schema
```
val fileName = "person.json"
val sc = SparkUtils.getScLocal("json file æµè¯")
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val schema: StructType = StructType(mutable.ArraySeq(
StructField("name", StringType, true),
StructField("age", StringType, true),
StructField("time", TimestampType, true)));
val jsonFile = sqlContext.read.schema(schema).json(fileName)
jsonFile.printSchema()
jsonFile.registerTempTable("person")
val now: Timestamp = new Timestamp(System.currentTimeMillis())
val teenagers = sqlContext.sql("SELECT * FROM person WHERE age >= 20 AND age <= 30 AND time <=â" +now+"â")
teenagers.foreach(println)
val dataFrame = sqlContext.sql("SELECT * FROM person WHERE age >= 20 AND age <= 30 AND time <=â2015-03-03 16:25:55.769â")
dataFrame.foreach(println)
```
###æ¹æ¡ä¸ãsql建表
å建表sql
```
CREATE TEMPORARY TABLE person IF NOT EXISTS
[(age: long ,name:string ,time:Timestamp)]
USING org.apache.spark.sql.json
OPTIONS ( path âperson.jsonâ)
è¯æ³
CREATE [TEMPORARY] TABLE [IF NOT EXISTS]
ãã [(col-name data-type [, â¦])]
ããUSING [OPTIONS ...]
ãã[AS ]
```
### æ¹æ¡åãç¨textfile convert
温馨提示:答案为网友推荐,仅供参考