Apache spark 在spark sql中显示特定值
这是我转换为Df的Json部分Apache spark 在spark sql中显示特定值,apache-spark,apache-spark-sql,Apache Spark,Apache Spark Sql,这是我转换为Df的Json部分 {“business_id:”vcnawim4dr7d2nwwj7nca“,”完整地址“:”4840 E印第安学校路101\nPhoenix,亚利桑那州85018“,”小时“:{”星期二“{”关闭“:”17:00”,“开放“:”08:00“,”星期五“{”关闭“:”17:00”,“开放“:”08:00“,”星期一“,”星期三“{”关闭“:”17:00”,“开放“:”08:00“,”星期四“{“17:00”,“开放”:“08:00”},“开放”:真,“类别”:[“医
{“business_id:”vcnawim4dr7d2nwwj7nca“,”完整地址“:”4840 E印第安学校路101\nPhoenix,亚利桑那州85018“,”小时“:{”星期二“{”关闭“:”17:00”,“开放“:”08:00“,”星期五“{”关闭“:”17:00”,“开放“:”08:00“,”星期一“,”星期三“{”关闭“:”17:00”,“开放“:”08:00“,”星期四“{“17:00”,“开放”:“08:00”},“开放”:真,“类别”:[“医生”,“健康与医疗”],“城市”:“凤凰城”,“回顾计数”:9,“姓名”:“埃里克·戈德伯格,医学博士”,“邻里区”:[],“经度”:-111.98375799999999,“州”:“AZ”,“星星”:3.5,“纬度”:33.49931300000001,“属性”:“{”仅限预约:真“,“类型”:“商业”}
…还有更多类似的内容
现在我只需要显示所有业务的星期二开始和结束时间。我尝试了使用
过滤器条件的isin
帮助。但这不起作用。任何人请指导我。如果数据框使用此模式正确加载(我使用spark.read.json
加载了您的示例):
你能行
scala> df.select("hours.Tuesday").show
+--------------+
| Tuesday|
+--------------+
|[17:00, 08:00]|
+--------------+
如果你想要接近时间,你可以这样做
scala> df.select("hours.Tuesday.close").show
+-----+
|close|
+-----+
|17:00|
+-----+
,感谢您的建议。我们是否可以使用like val day=spark.sql(“选择小时数。打开,小时数。关闭时间”).filter(col(“小时数”)==“星期二”).show()?在读取json时,如果一条记录的星期二不存在,它仍将位于模式中,因为其他记录都有它,所以您需要执行类似于“df.createOrReplaceTempView”(“t”)的操作`然后spark.sql(“从t中选择hours.beday,其中hours.beday不为空”)
scala> df.select("hours.Tuesday.close").show
+-----+
|close|
+-----+
|17:00|
+-----+