Spark 데이터 프레임에서 두 열을 병합하는 가장 효율적인 방법은 무엇입니까?
동일한 의미를 갖는 두 개의 열이 있습니다. 의 null 값은 timestamp
다음의 값으로 채워야합니다.toAppendData_timestamp
두 열에 값이 있으면 값이 같음을 의미합니다.
내가 이거 가지고있어:
+--------------------+----------------------+--------+
| timestamp|toAppendData_timestamp| value|
+--------------------+----------------------+--------+
|2016-03-24 22:11:...| null| null|
| null| 2016-03-24 22:12:...|0.015625|
| null| 2016-03-19 15:54:...| 5.375|
|2016-03-19 15:55:...| 2016-03-19 15:55:...| 5.78125|
|2016-03-19 15:56:...| null| null|
|2016-03-24 22:11:...| 2016-03-24 22:11:...| 0.15625|
+--------------------+----------------------+--------+
그리고 나는 이것이 필요합니다.
+--------------------+----------------------+--------+
| timestamp_merged|toAppendData_timestamp| value|
+--------------------+----------------------+--------+
|2016-03-24 22:11:...| null| null|
|2016-03-24 22:12:...| 2016-03-24 22:12:...|0.015625|
|2016-03-19 15:54:...| 2016-03-19 15:54:...| 5.375|
|2016-03-19 15:55:...| 2016-03-19 15:55:...| 5.78125|
|2016-03-19 15:56:...| null| null|
|2016-03-24 22:11:...| 2016-03-24 22:11:...| 0.15625|
+--------------------+----------------------+--------+
나는 이것을 시도했지만 성공하지 못했습니다.
appendedData = appendedData['timestamp'].fillna(appendedData['toAppendData_timestamp'])
당신이 찾고있는 기능은 coalesce
입니다. 다음에서 가져올 수 있습니다 pyspark.sql.functions
.
from pyspark.sql.functions import coalesce, col
그리고 사용 :
appendedData.withColumn(
'timestamp_merged',
coalesce(col('timestamp'), col('toAppendData_timestamp'))
)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다