用excel打開,粘貼出來資料是這樣:
uid,uuid,event_type,event_data,created_at
123456,abcdefabcdefabcdef,some-action,"{""duration"": ""20"", ""questionId"": ""123456""}",1476201605
這里的event_data是一個json,使用下面的代碼讀取:
val usereventDF = spark.read.format("csv").option("header", "true").option("inferSchema", "true")
.load("/Users/xxx/Desktop/event.csv")
.createOrReplaceTempView("t_event")
當select *的時候,會發現created_at欄位的輸出被按照前面json當中的逗號識別了:
+-------+--------------------+--------------+--------------------+--------------------+
| uid| uuid| event_type| event_data| created_at|
+-------+--------------------+--------------+--------------------+--------------------+
|123456|abcdefabcdefabcdef...|some-action|"{""duration"": "...| ""questionId"": ...|
即便使用get_json_object,也會發現直接輸出'$'就是個 "{"
資料是第三方給的,求助一下決議這種csv內套json的表的正確姿勢,謝謝!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/72693.html
標籤:Spark
