Tôi đang sử dụng pySpark
, và đã thiết lập dataframe của tôi với hai cột đại diện cho một giá tài sản hàng ngày như sau:Áp dụng một hàm cửa sổ để tính toán sự khác biệt trong pySpark
ind = sc.parallelize(range(1,5))
prices = sc.parallelize([33.3,31.1,51.2,21.3])
data = ind.zip(prices)
df = sqlCtx.createDataFrame(data,["day","price"])
tôi nhận được khi áp dụng df.show()
:
+---+-----+
|day|price|
+---+-----+
| 1| 33.3|
| 2| 31.1|
| 3| 51.2|
| 4| 21.3|
+---+-----+
Điều đó là tốt và tất cả. Tôi muốn có một cột chứa ngày-to-ngày trở lại của cột giá, tức là một cái gì đó giống như
(price(day2)-price(day1))/(price(day1))
Sau nhiều nghiên cứu, tôi nói rằng điều này được thực hiện một cách hiệu quả nhất thông qua việc áp dụng pyspark.sql.window
chức năng, nhưng tôi không thể xem như thế nào.
Xin chào. Cảm ơn! Điều đó rất hữu ích. Nhân tiện, chức năng "sáng" làm gì? –
'lit' - Tạo cột Giá trị theo nghĩa đen - https://spark.apache.org/docs/latest/api/python/pyspark.sql.html#pyspark.sql.functions.lit – Oleksiy
Xin chào Oleksiy, ok, cảm ơn ! –