Bắt đầu ngayBắt đầu miễn phí

Tổng hợp dữ liệu, từng bước một

Việc dùng dot notation hay SQL là tùy sở thích cá nhân. Tuy nhiên, như minh họa trong bài tập video, có những trường hợp SQL đơn giản hơn. Cũng như đã trình bày trong bài học video, cũng có những trường hợp dot notation cho kết quả khó đoán, chẳng hạn khi một phép tổng hợp thứ hai trên cùng một cột ghi đè kết quả tổng hợp trước đó. Như đã đề cập trong video, cú pháp cơ bản của agg trong pyspark chỉ có thể thực hiện một phép tổng hợp trên mỗi cột tại một thời điểm.

Các bài tập sau sẽ tính thời điểm xuất phát đầu tiên cho mỗi tuyến tàu.

Hai truy vấn đầu tiên cho kết quả trùng khớp. Tuy nhiên, hai truy vấn tiếp theo thì không. Bạn có xác định được lý do không?

Bài tập này là một phần của khóa học

Nhập môn Spark SQL bằng Python

Xem khóa học

Hướng dẫn bài tập

  • Điền vào chỗ trống để cặp lệnh đầu tiên hiển thị kết quả giống hệt nhau.
  • Kết quả thứ tư, đặt tên là result, là một nỗ lực ngây thơ nhằm lặp lại dòng trước đó. Tuy nhiên, nó lại khác theo cách khó đoán. Khác như thế nào? Điền vào chỗ trống để in tên của cột thứ hai của result.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# Give the identical result in each command
spark.sql('SELECT train_id, MIN(time) AS start FROM schedule GROUP BY train_id').show()
df.groupBy('____').agg({'time':'____'}).withColumnRenamed('____', 'start').show()

# Print the second column of the result
spark.sql('SELECT train_id, MIN(time), MAX(time) FROM schedule GROUP BY train_id').show()
result = df.groupBy('train_id').agg({'time':'min', 'time':'max'})
result.show()
print(result.columns[____])
Chỉnh sửa và Chạy Mã