我使用Spark SQLContext读取数据并将其存储在变量:
val somevar = sqlContext.read.parquet(some_file.parquet)
然后我希望使用select选择所有值,例如:
somevar.select(*)
但这不起作用。
相当于:
somevar.registerTempTable("sometable")
sqlContext.sql("SELECT * FROM sometable")
但我不想做以前的事。
亲切的问候。
答案 0 :(得分:6)
您遇到语法错误。以下语法是 使用spark-sql选择所有 列的方法:
import sqlContext.implicit._
val df = Seq((1,2),(2,3)).toDF
// df: org.apache.spark.sql.DataFrame = [_1: int, _2: int]
// solution 1
df.select("*")
// res54: org.apache.spark.sql.DataFrame = [_1: int, _2: int]
// alternative 1
df.select($"*")
// res55: org.apache.spark.sql.DataFrame = [_1: int, _2: int]
// alternative 2
df.select('*)
// res56: org.apache.spark.sql.DataFrame = [_1: int, _2: int]