【发布时间】:2018-11-18 12:24:46
【问题描述】:
我在 Java 中有以下字符串
{
"header": {
"gtfs_realtime_version": "1.0",
"incrementality": 0,
"timestamp": 1528460625,
"user-data": "metra"
},
"entity": [{
"id": "8424",
"vehicle": {
"trip": {
"trip_id": "UP-N_UN314_V1_D",
"route_id": "UP-N",
"start_time": "06:17:00",
"start_date": "20180608",
"schedule_relationship": 0
},
"vehicle": {
"id": "8424",
"label": "314"
},
"position": {
"latitude": 42.10085,
"longitude": -87.72896
},
"current_status": 2,
"timestamp": 1528460601
}
}
]
}
表示 JSON 文档。我想在 Spark 数据框中为 流应用程序 推断架构。
如何像 CSV 文档一样拆分字符串的字段(我可以在其中调用.split(""))?
【问题讨论】:
-
你有代表这个 JSON 的案例类吗?顺便说一句,在结构化流中进行推断是不可能的,只能批量进行
-
我没有类,但字段的结构是标准的...我在 Spark Programming Guide 中看到可以使用这些命令推断架构:
Dataset<Row> df = sparkSession .readStream() .format("kafka") .option("kafka.bootstrap.servers", KafkaFeeds.kafkaBrokerEndpoint) .option("subscribe", "kafkaToSparkTopic") .load(); -
在“拆分”示例 json 字符串后,您究竟希望输出什么?
-
我只想提取 JSON 文档的一些字段,例如位置字段的“纬度”值。所以我想要一个易于拆分的格式(如 CSV .split(""))
标签: java json apache-spark spark-streaming