Python 如何使用pyspark从数据帧筛选数据
我有一个名为mytable作为dataframe的表,下面是该表 [+---+----+----+----+ | x| y| z| w| +---+----+----+----+ | 1| a|null|null| | 1|null| b|null| | 1|null|null| c| | 2| d|null|null| | 2|null| e|null| | 2|null|null| f| +---+----+----+----+] [+---+----+----+----+ |x | y | z | w | +---+----+----+----+ |1 | a | null | null| |1 |空| b |空| |1 |零|零| c| |2 | d | null | null| |2 |空| e |空| |2 |零|零| f| +---+----+----+----+] 我想要的结果是,我们按x列分组,并将y,z,w列的结果连接起来。结果如下所示 [+---+----+----+- | x| result| +---+----+----+ | 1| a b c | | 2| d e f | +---+----+---+| [+---+----+----+- |x |结果| +---+----+----+ |1 | a b c| |2 | d e f| +---+----+---+| 希望这能有所帮助Python 如何使用pyspark从数据帧筛选数据,python,apache-spark,pyspark,spark-dataframe,Python,Apache Spark,Pyspark,Spark Dataframe,我有一个名为mytable作为dataframe的表,下面是该表 [+---+----+----+----+ | x| y| z| w| +---+----+----+----+ | 1| a|null|null| | 1|null| b|null| | 1|null|null| c| | 2| d|null|null| | 2|null| e|null| | 2|null|null| f| +---+----+----+----+] [+--
从pyspark.sql.functions导入concat\u ws、collect\u list、concat、coalesce、lit
#样本数据
df=sc.parallelize([
[1,‘a’,无,无],
[1,无,'b',无],
[1,无,无,'c'],
[2,'d',无,无],
[2,无,'e',无],
[2,无,无,'f']])\
toDF(('x','y','z','w'))
df.show()
结果_df=df.groupby(“x”)\
agg(concat_ws(“”,collect_list(concat(*[coalesce(c,lit(“”))表示df.columns[1:]]中的c)。
别名('result'))
结果_df.show()
输出为:
+---+------+
| x|result|
+---+------+
| 1| a b c|
| 2| d e f|
+---+------+
样本输入:
+---+----+----+----+
| x| y| z| w|
+---+----+----+----+
| 1| a|null|null|
| 1|null| b|null|
| 1|null|null| c|
| 2| d|null|null|
| 2|null| e|null|
| 2|null|null| f|
+---+----+----+----+
@阿曼如果它能帮助你解决问题,你也许应该这样做,这样问题就可以被认为是完结了。