我在数据块上使用 'var df...' 时出现 'invalid syntax' 错误(尝试更改列数据类型)
I get 'invalid syntax' error using 'var df...' on databricks (trying to change column data type)
我正在尝试使用下面的代码(在 Databricks 笔记本中)将列的类型从字符串更改为日期时间。
import org.apache.spark.sql.functions._
val df\ = df.withColumn("end",col("end").cast(DateType))
df\.printSchema()
或者像那样:
df.createOrReplaceTempView("CastExample")
val df4 = spark.sql("DATE(end) from CastExample")
df4.printSchema()
df4.show(false)
但是我得到这个错误:
SyntaxError: invalid syntax
File "<command-1642181972810133>", line 2
val df4 = spark.sql("DATE(end) from CastExample")
^
SyntaxError: invalid syntax
"val"
好像是'immutable reference'之类的意思,但是我在网上找不到任何相关信息。有很多使用它的代码示例,但没有人提到它为什么在那里。或者我正在以错误的方式搜索它。好像来自 Scala,但我不知道...也许我没有导入任何东西。
如有任何建议,我将不胜感激。
你不应该使用 'val' 因为那是 Scala 语法,如果你想要 df4 中 df 的所有列,使用 *.
df.createOrReplaceTempView("CastExample")
df4 = spark.sql("SELECT *, DATE(end) as new_name from CastExample")
df4.printSchema()
df4.show(10,False)
您也可以使用 PySpark 来实现同样的目的。
df4=df.select(to_date(df.end).alias('new_name'))
df4.show(10,False)
我正在尝试使用下面的代码(在 Databricks 笔记本中)将列的类型从字符串更改为日期时间。
import org.apache.spark.sql.functions._
val df\ = df.withColumn("end",col("end").cast(DateType))
df\.printSchema()
或者像那样:
df.createOrReplaceTempView("CastExample")
val df4 = spark.sql("DATE(end) from CastExample")
df4.printSchema()
df4.show(false)
但是我得到这个错误:
SyntaxError: invalid syntax
File "<command-1642181972810133>", line 2
val df4 = spark.sql("DATE(end) from CastExample")
^
SyntaxError: invalid syntax
"val"
好像是'immutable reference'之类的意思,但是我在网上找不到任何相关信息。有很多使用它的代码示例,但没有人提到它为什么在那里。或者我正在以错误的方式搜索它。好像来自 Scala,但我不知道...也许我没有导入任何东西。
如有任何建议,我将不胜感激。
你不应该使用 'val' 因为那是 Scala 语法,如果你想要 df4 中 df 的所有列,使用 *.
df.createOrReplaceTempView("CastExample")
df4 = spark.sql("SELECT *, DATE(end) as new_name from CastExample")
df4.printSchema()
df4.show(10,False)
您也可以使用 PySpark 来实现同样的目的。
df4=df.select(to_date(df.end).alias('new_name'))
df4.show(10,False)