Apache spark 在spark sql中显示特定值

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”},“开放”:真,“类别”:[“医

这是我转换为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”},“开放”:真,“类别”:[“医生”,“健康与医疗”],“城市”:“凤凰城”,“回顾计数”: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|
+-----+