-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathReadComplexJsonApplication.scala
More file actions
44 lines (31 loc) · 1.42 KB
/
ReadComplexJsonApplication.scala
File metadata and controls
44 lines (31 loc) · 1.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package com.mmtechsoft.xmljson
import org.apache.spark.SparkConf
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.types.{LongType, StringType, StructType}
object ReadComplexJsonApplication {
def main(args: Array[String]): Unit = {
//val spark = SparkSession.builder.getOrCreate()
val sparkConf = new SparkConf
val spark = SparkSession.builder
.config(sparkConf).master("local[*]")
.getOrCreate()
// val schema = (new StructType).add("action", StringType).add("timestamp", TimestampType)
val schema = (new StructType)
.add("payload", (new StructType)
.add("event", (new StructType)
.add("action", StringType)
.add("timestamp", LongType)
)
)
// val schema = (new StructType).add("action", StringType).add("timestamp", StringType)
// val mdf = spark.read.option("multiline", "true")
// .json("C:\\Users\\Admin\\IdeaProjects\\welcome_scala_java\\src\\main\\scala\\com\\mmtechsoft\\xmljson\\time.json")
val path = "C:\\Users\\Admin\\IdeaProjects\\welcome_scala_java\\src\\main\\scala\\com\\mmtechsoft\\xmljson\\time.json";
//val df = spark.read.schema(schema).json(path).select($"payload.event.*")
val df1 = spark.read.schema(schema).json(path)
spark.read.schema(schema).json(path).select($"payload.event.*").show
//
// df1.printSchema()
// df1.show();
}
}