pyspark:如何get_json_object带有空格的名称(或名称中的其他怪异字符)? [英] pyspark: how to get_json_object for names with spaces (or other weird characters in the name)?
问题描述
通常
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屋!