pyspark:如何get_json_object带有空格的名称(或名称中的其他怪异字符)? [英] pyspark: how to get_json_object for names with spaces (or other weird characters in the name)?

查看:406
本文介绍了pyspark:如何get_json_object带有空格的名称(或名称中的其他怪异字符)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

通常

F.get_json_object(name, "$.element_name")

工作正常,可以从这样的JSON对象中提取element_name

works fine to extract the element_name from a JSON object like this

{"element_name" : 1}

但是,如果名称中有空格怎么办?我该如何引用名字?

But what if the name has a space in this? How do I quote the name?

{"element name" : 1}

这显然行不通

F.get_json_object(name, "$.elementname")

通常,这不是pyspark特有的问题,但似乎pyspark(也许还有Java)对jsonpath的规格可能略有不同.

Normally, this is not a pyspark specific problem but it seems like pyspark (and maybe java) can have slightly different specs for the jsonpath.

推荐答案

对于Spark,应使用以下两个之一:(1)点号.name,其名称不包括任何点.或左括号[;或(2)名称中不含任何单引号'或问号?的方括号符号['name'],例如:

For Spark, one of the following two should be working: (1) dot-notation .name with name excluding any dot . or opening bracket [; or (2) bracket-notation ['name'] with name excluding any single quote ' or question-mark ?, for example:

F.get_json_object('name', "$['element name']")
F.get_json_object('name', "$.element name")

请参见因此,如果名称包含 dot 开括号,请使用['name'],如果名称包含单引号问号,请使用.name.否则,您可以选择其中一个.工作表达式的更多示例:

Thus, if the name contains dot or opening bracket, use ['name'], if the name contains single quote or question mark, use .name. otherwise you can select either one. more examples of working expressions:

F.get_json_object('name', "$.Trader Joe's")
F.get_json_object('name', "$['amazon.com']")

这篇关于pyspark:如何get_json_object带有空格的名称(或名称中的其他怪异字符)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆