0
A
回答
0
spark = SparkSession.builder.appName('MyApp').getOrCreate()
rdd = spark.sparkContext.parallelize([2, 43, 1, 25, 3, 13]).zipWithIndex()
df = spark.createDataFrame(rdd, schema=['int_val', 'idx']).cache()
df_r = df.select(df['int_val'].alias('int_val_r'), (df['idx'] + 1).alias('idx_r'))
df = df.join(df_r, on=[df['idx'] == df_r['idx_r']], how='left_outer').orderBy(df['idx'])
df = df.withColumn('res', f.when(df['idx'] % 2 == 1, df['int_val'] * df['int_val_r']).otherwise(f.lit('null')))
df.show()
輸出:
+-------+---+---------+-----+----+
|int_val|idx|int_val_r|idx_r| res|
+-------+---+---------+-----+----+
| 2| 0| null| null|null|
| 43| 1| 2| 1| 86|
| 1| 2| 43| 2|null|
| 25| 3| 1| 3| 25|
| 3| 4| 25| 4|null|
| 13| 5| 3| 5| 39|
+-------+---+---------+-----+----+
相關問題
- 1. 使用火花數據幀
- 2. 變異火花數據幀
- 3. 火花:我在數據幀
- 4. 火花數據幀執行
- 5. 收起火花數據幀
- 6. JavaPairRDD到數據幀中的Apache火花用java
- 7. 保存數據幀中的火花SQL
- 8. 火花數據幀的轉換
- 9. 閱讀的Structs從火花數據幀
- 10. 火花地板數據幀分區數
- 11. 火花RDD.map火花數據幀withColumn方法
- 12. 保火花數據幀列分區
- 13. 火花數據幀爆炸對列表
- 14. 火花數據幀爆炸功能
- 15. 轉換火花數據幀列
- 16. 將火花數據幀嵌套映射
- 17. 修改火花數據幀列
- 18. 火花數據幀聚合階
- 19. 比較兩個火花數據幀
- 20. 火花數據幀reducebykey像操作
- 21. 火花數據幀是否分佈?
- 22. 集團火花數據幀按日期
- 23. 火花數據幀groupby多次
- 24. 火花數據幀變換多行
- 25. 火花數據幀隨機分裂
- 26. 火花數據幀從視圖
- 27. 如何獲得火花數據幀
- 28. 火花數據幀過濾器
- 29. PySpark:無法創建火花數據幀
- 30. 蘇打水:出火花數據幀轉換爲H2O數據幀