比较 Spark SQL 中的项目时 where 子句内出错
Error inside where clause while comparing items in Spark SQL
我有cloudera vm 运行 spark 版本1.6.0
我从 CSV 文件创建了一个数据框,现在根据某些 where 子句过滤列
df = sqlContext.read.format('com.databricks.spark.csv').options(header='true').load('file:///home/cloudera/sample.csv')
df.registerTempTable("closedtrips")
result = sqlContext.sql("SELECT id,`safety rating` as safety_rating, route FROM closedtrips WHERE `trip frozen` == 'YES'")
但是它在 sql 行给我运行时错误。
py4j.protocol.Py4JJavaError: An error occurred while calling o21.sql.
: java.lang.RuntimeException: [1.96] failure: identifier expected
SELECT consigner,`safety rating` as safety_rating, route FROM closedtrips WHERE `trip frozen` == 'YES'
^
我哪里错了?
上述命令在 vm 命令行中失败,但在 运行 databricks 环境
中工作正常
另外,为什么列名在 vm 中区分大小写,它无法识别 'trip frozen',因为实际的列是 'Trip Frozen'。
所有这些在 databricks 中工作正常,在 vm
中中断
在您的 VM 中,您是将 sqlContext
创建为 SQLContext
还是 HiveContext
?
在 Databricks 中,自动创建的 sqlContext
将始终指向 HiveContext
。
在 Spark 2.0 中,HiveContext
和常规 SQLContext
之间的区别应该无关紧要,因为两者都已包含在 SparkSession
中,但在 Spark 1.6 中,两种类型的上下文在以下方面略有不同他们如何解析 SQL 语言输入。
我有cloudera vm 运行 spark 版本1.6.0
我从 CSV 文件创建了一个数据框,现在根据某些 where 子句过滤列
df = sqlContext.read.format('com.databricks.spark.csv').options(header='true').load('file:///home/cloudera/sample.csv')
df.registerTempTable("closedtrips")
result = sqlContext.sql("SELECT id,`safety rating` as safety_rating, route FROM closedtrips WHERE `trip frozen` == 'YES'")
但是它在 sql 行给我运行时错误。
py4j.protocol.Py4JJavaError: An error occurred while calling o21.sql.
: java.lang.RuntimeException: [1.96] failure: identifier expected
SELECT consigner,`safety rating` as safety_rating, route FROM closedtrips WHERE `trip frozen` == 'YES'
^
我哪里错了?
上述命令在 vm 命令行中失败,但在 运行 databricks 环境
中工作正常另外,为什么列名在 vm 中区分大小写,它无法识别 'trip frozen',因为实际的列是 'Trip Frozen'。 所有这些在 databricks 中工作正常,在 vm
中中断在您的 VM 中,您是将 sqlContext
创建为 SQLContext
还是 HiveContext
?
在 Databricks 中,自动创建的 sqlContext
将始终指向 HiveContext
。
在 Spark 2.0 中,HiveContext
和常规 SQLContext
之间的区别应该无关紧要,因为两者都已包含在 SparkSession
中,但在 Spark 1.6 中,两种类型的上下文在以下方面略有不同他们如何解析 SQL 语言输入。