【问题标题】:Select all except particular column in spark sql在spark sql中选择除特定列之外的所有列
【发布时间】:2017-09-24 11:05:03
【问题描述】:

我想选择表中除 StudentAddress 之外的所有列,因此我编写了以下查询:

select `(StudentAddress)?+.+` from student;

它在 Squirrel Sql 客户端中出现以下错误。 org.apache.spark.sql.AnalysisException:无法解析给定输入列的“(StudentAddress)?+.+

【问题讨论】:

  • Spark 似乎不支持这种语法
  • 任何解决方法?
  • 实际需要什么?
  • 我正在加入多个非常宽的表,因此在执行一次连接后,我需要删除其中一个连接列以消除下一次连接的歧义。目前,我在 select 中指定了我想要的所有列名,但是除了列之外的功能将非常灵活。谢谢。

标签: apache-spark-sql hiveql pyspark-sql spark-hive


【解决方案1】:

您可以使用 DataFrame API 中的drop() 方法删除特定列,然后选择所有列。

例如:

val df = hiveContext.read.table("student")
val dfWithoutStudentAddress = df.drop("StudentAddress")

【讨论】:

  • drop 后不需要 select("*")。
猜你喜欢
  • 2018-11-23
  • 1970-01-01
  • 2013-04-20
  • 2013-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-23
  • 1970-01-01
相关资源
最近更新 更多