【问题标题】:spark select column which has double quotes火花选择具有双引号的列
【发布时间】:2018-07-13 14:46:02
【问题描述】:

我的 spark 数据框有一列如下所示

"drop":{"dropPath":"https://dropserv.content25.ec2.st-av.net/drop?source_id: string (nullable = true)

我需要对此运行选择查询,我尝试了以下命令但出现错误

df.select('"drop":{"dropPath":"https://dropserv.content25.ec2.st-av.net/drop?source_id').show(10)     

error: unclosed character literal

我的数据框架构是

scala> df.printSchema()

root
 |-- metadata: struct (nullable = true)
 |    |-- "drop":{"dropPath":"https://dropserv.content25.ec2.st-av.net/drop?source_id: string (nullable = true)
 |-- url: string (nullable = true)

我也试过下面的东西,但同样的错误

  df.select(('`"drop":{"dropPath":"https://mediaserv.media27.ec2.st-av.net/drop?source_id`').show()

【问题讨论】:

  • 尝试转义双引号....df.select("drop\":{\"dropPath\":\"https://dropserv.content25.ec2.st-av.net/drop?source_id").show(10)
  • 同样的错误错误:未闭合的字符串文字

标签: apache-spark pyspark


【解决方案1】:

您可以为此使用`。

df.select('drop.`dropPath`.`https://dropserv.content25.ec2.st-av.net/drop?source_id`').show(10)     

【讨论】:

【解决方案2】:

好的,所以问题是您的列名中的点.。当您删除所有点时,您会看到它工作正常。

选择列名可以这样,

#Add ` in the start and end of string while selecting.
df.select('`"drop":{"dropPath":"https://dropserv.content25.ec2.st-av.net/drop?source_id`') 

【讨论】:

  • 我仍然收到错误 :::::::::-> :1: error: unclosed string literal df.select('"drop":{"dropPath":"https://mediaserv.media27.ec2.st-av.net/drop?source_id')
  • 你是否在字符串中包含了我上面所说的`?我的意思是第一个字符串 ' 之后是 `.
  • 是的,我试过了,因为那个`符号没有出现,我更新了我的问题检查它..
猜你喜欢
  • 1970-01-01
  • 2019-03-03
  • 2022-01-02
  • 1970-01-01
  • 2021-12-02
  • 1970-01-01
  • 2020-09-09
  • 2013-10-25
  • 2015-10-04
相关资源
最近更新 更多