2016-04-04 19 views
0

İki sütunu SparkR'de birleştirmenin kolay yolu nedir? Kıvılcım DF aşağıdaki düşünün: Ben istiyorumİki sütunu bir araya getir SparkR

salary_from salary_to position 
1500   null  a 
null   1300  b 
800   1000  c 

böyle bir mantıkla salary sütun kombine almak için. salary_from ve salary_to'dan null olmayanı alın ve her ikisi de mevcutsa, ortada bir değer elde edin.

salary_from salary_to position salary 
1500   null  a   1500 
null   1300  b   1300 
800   1000  c   900 

Ben R yöntemini uygulamak yapacağını gibi benim mantığı her hat üzerinden yürümek ve uygulamanın bir yoludur, var mı? İlk boş değil ifadesini döndürür

withColumn(
    sdf, "salary", 
    expr("coalesce((salary_from + salary_to)/2, salary_from, salary_to)") 
) 

:

+0

Ben sparkr ve dplyr, sparkrext birleştiren bir paket hakkında duydum ama kullanmadım https://github.com/hoxo-m/SparkRext. Belki size yardımcı olabilir .. –

cevap

1

Sen coalesce işlevini kullanabilirsiniz.

+0

SparkR API referansında http://spark.apache.org/docs/latest/api/R/index.html dosyasında bulamıyorum. Beni daha fazla nerede bulabileceğime yönlendirebilir misin? –

+2

Henüz yapamadığınız için yapamazsınız. Bu yüzden 'expr' ihtiyacın var. Aksi halde herhangi bir SQL referansı yapacağı için sadece düz bir SQL 'coalesce '' dir. Örneğin, http://www.w3schools.com/sql/sql_isnull.asp. Veya PySpark docstrings: https://github.com/apache/spark/blob/master/python/pyspark/sql/functions.py#L212 – zero323

+0

Spark Data Frame satırları arasında geçiş yapmak için bir yol var mı? –

İlgili konular