Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pyspark 为什么我的Dataframe列表达式不工作?_Pyspark - Fatal编程技术网

Pyspark 为什么我的Dataframe列表达式不工作?

Pyspark 为什么我的Dataframe列表达式不工作?,pyspark,Pyspark,给定一个数据帧df,当我这样做时 df.选择(df['category\u id']+1000),我得到结果 >>> df.select(df['category_id']).limit(3).show() +-----------+ |category_id| +-----------+ | 1| | 2| | 3| +-----------+ >>> df.select(df['category_id

给定一个数据帧
df
,当我这样做时

df.选择(df['category\u id']+1000)
,我得到结果

>>> df.select(df['category_id']).limit(3).show()
+-----------+
|category_id|
+-----------+
|          1|
|          2|
|          3|
+-----------+

>>> df.select(df['category_id']+1000).limit(3).show()
+--------------------+
|(category_id + 1000)|
+--------------------+
|                1001|
|                1002|
|                1003|
+--------------------+
但是,当我执行
df.select(df['category_name']+'blah')
时,获取
null

>>> df.select(df['category_name']).limit(3).show()
+-------------------+
|      category_name|
+-------------------+
|           Football|
|             Soccer|
|Baseball & Softball|
+-------------------+

>>> df.select(df['category_name']+'blah').limit(3).show()
+----------------------+
|(category_name + blah)|
+----------------------+
|                  null|
|                  null|
|                  null|
+----------------------+

只是想知道是什么让一个有效而另一个无效?我遗漏了什么?

与python不同,
+
操作符在spark中没有定义为字符串连接(sql也没有这样做),而是使用
concat/concat\ws
进行字符串连接

导入pyspark.sql.f函数
df.select(f.concat(df.category_name,f.lit('blah'))。alias('category_name'))。show(truncate=False)
#+-----------------------+
#|类别名称|
#+-----------------------+
#|足球等等|
#|足球场|
#|棒球和垒球|
#+-----------------------+
df.select(f.concat_ws(“”,df.category_name,f.lit('blah')).alias('category_name')).show(truncate=False)
#+------------------------+
#|类别名称|
#+------------------------+
#|足球废话|
#|足球废话|
#|棒球和垒球之类的|
#+------------------------+