Удалите пустые значения из Spark DataFrame и объедините их в одну строку [duplicate]

Работает в Windows

откройте командную строку (нажмите клавишу Windows + R, затем введите «cmd» без кавычек в появившемся диалоговом окне, а затем нажмите клавишу ввода).

затем введите код sniff ниже:

  1. cd C: \ Program Files \ Java \ jdk1.7.0_25 \ bin

затем введите следующую команду

  1. keytool -list -keystore "C: / Documents and Settings / Ваше имя / .android / debug.keystore"

Затем он будет запрашивать пароль Keystore. Пароль по умолчанию является «андроидным» типом и введите или просто нажмите «DONT TYPE ANY PASSWORD».

0
задан UmerF92 7 May 2018 в 20:33
поделиться

1 ответ

Если вы знаете, что существует только одна запись для группы, которая не является нулевой (или вам все равно, какой из них вы получите), вы можете использовать first:

import org.apache.spark.sql.functions.{first, last}

val df = Seq(
  ("a", Some(1), None, None), ("a", None, Some(2), None),
  ("a", None, None, Some(3))
).toDF("key", "value1", "value2", "value3")

df.groupBy("key").agg(
  first("value1", true) as "value1", 
  first("value2", true) as "value2", 
  first("value3", true) as "value3"
).show  

// +---+------+------+------+
// |key|value1|value2|value3|
// +---+------+------+------+
// |  a|     1|     2|     3|
// +---+------+------+------+

или last:

df.groupBy("key").agg(
  last("value1", true) as "value1", 
  last("value2", true) as "value2", 
  last("value3", true) as "value3"
).show  


// +---+------+------+------+
// |key|value1|value2|value3|
// +---+------+------+------+
// |  a|     1|     2|     3|
// +---+------+------+------+    
1
ответ дан user8371915 16 August 2018 в 11:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: