如何从表达式创建列

时间:2018-01-19 05:32:48

标签: apache-spark dataframe pyspark

The doc说:

# 2. Create from an expression
df.colName + 1
1 / df.colName

任何人都可以解释代码的含义和用法吗?

1 个答案:

答案 0 :(得分:2)

这意味着使用旧列的算术运算会创建一个新的Column对象:

df = spark.createDataFrame([[1], [2]], ['a'])
df.show()
+---+
|  a|
+---+
|  1|
|  2|
+---+

df.a
# Column<b'a'>
df.a + 1
# Column<b'(a + 1)'>
1 / df.a
# Column<b'(1 / a)'>

df.adf.a + 11 / df.a都是对象,您想要问的可能是如何将列附加到数据框,哪个,你可以使用select

df.select('a', (df.a + 1).alias('b')).show()
+---+---+
|  a|  b|
+---+---+
|  1|  2|
|  2|  3|
+---+---+

withColumn

df.withColumn('b', df.a + 1).show()
+---+---+
|  a|  b|
+---+---+
|  1|  2|
|  2|  3|
+---+---+