在我这样做的时候给出一个DataFrame .php
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="http://malsup.github.com/jquery.form.js"></script>
<script>
$(document).ready(function(){
mailTab.alert('Test');
});
</script>
,我得到结果
df
但是,当我df.select(df['category_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')
只是想知道是什么使一个起作用而另一个不起作用?我想念什么?
答案 0 :(得分:1)
与python不同,+
运算符未在spark中定义为字符串连接(而sql也没有这样做),而是将concat/concat_ws
用于字符串连接。
import pyspark.sql.functions as f
df.select(f.concat(df.category_name, f.lit('blah')).alias('category_name')).show(truncate=False)
#+-----------------------+
#|category_name |
#+-----------------------+
#|Footballblah |
#|Soccerblah |
#|Baseball & Softballblah|
#+-----------------------+
df.select(f.concat_ws(' ', df.category_name, f.lit('blah')).alias('category_name')).show(truncate=False)
#+------------------------+
#|category_name |
#+------------------------+
#|Football blah |
#|Soccer blah |
#|Baseball & Softball blah|
#+------------------------+