sec*_*ree 3 apache-spark apache-spark-sql
以下是一些声明:https://stackoverflow.com/a/45600938/4164722
当col返回未解析的列时,Dataset.col返回已解析的列.
有人可以提供更多细节吗?我何时应该使用Dataset.col()何时functions.col?
谢谢.
小智 7
在大多数情况下,没有实际差异.例如:
val df: Dataset[Row] = ???
df.select(df.col("foo"))
df.select(col("foo"))
Run Code Online (Sandbox Code Playgroud)
是等价的,相同的:
df.where(df.col("foo") > 0)
df.where(col("foo") > 0)
Run Code Online (Sandbox Code Playgroud)
当物源很重要时,差异变得很重要,例如连接:
val df1: Dataset[Row] = ???
val df2: Dataset[Row] = ???
df1.join(df2, Seq("id")).select(df1.col("foo") =!= df2.col("foo"))
Run Code Online (Sandbox Code Playgroud)
因为它Dataset.col被解析并绑定到DataFrame它,它允许您明确地选择从特定父级降序的列.这是不可能的col.
| 归档时间: |
|
| 查看次数: |
2900 次 |
| 最近记录: |