gpt4 book ai didi

scala - 为什么不接受 Scala 的 Symbol 作为列引用?

转载 作者:行者123 更新时间:2023-12-04 11:37:40 25 4
gpt4 key购买 nike

尝试 Spark SQL 的示例,它们似乎运行良好,除非需要表达式:

scala> val teenagers = people.where('age >= 10).where('age <= 19).select('name)
<console>:23: error: value >= is not a member of Symbol
val teenagers = people.where('age >= 10).where('age <= 19).select('name)

scala> val teenagers = people.select('name)
<console>:23: error: type mismatch;
found : Symbol
required: org.apache.spark.sql.catalyst.expressions.Expression
val teenagers = people.select('name)

似乎我需要一个没有记录的导入。

如果我批量导入所有内容
import org.apache.spark.sql.catalyst.analysis._
import org.apache.spark.sql.catalyst.dsl._
import org.apache.spark.sql.catalyst.errors._
import org.apache.spark.sql.catalyst.expressions._
import org.apache.spark.sql.catalyst.plans.logical._
import org.apache.spark.sql.catalyst.rules._
import org.apache.spark.sql.catalyst.types._
import org.apache.spark.sql.catalyst.util._
import org.apache.spark.sql.execution
import org.apache.spark.sql.hive._

编辑:...和
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
import sqlContext._

有用。

最佳答案

Spark 2.0 在这里 SparkSession已更换 SQLContext .

Scala 的 Symbol 有一个隐式转换类型和 Spark SQL 的 Column这在范围内不可用。

创建 SparkSession 后实例做 import在范围内有隐含。

val spark: SparkSession = ...
import spark.implicits._

scaladoc of implicits object .

它在 spark-shell 中自动导入以及您不必执行此显式导入的原因。

关于scala - 为什么不接受 Scala 的 Symbol 作为列引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25745396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com