Dado um Spark DataFrame em uma variável t
representando uma tabela com duas colunas inteiras (A, B), escreva a expressão usando as colunas DataFrame para serem passadas como parâmetro do DataFrame "s where()
método que seleciona linhas onde A é maior que 5 ou B é maior que 5. Usando a variável DataFrame e não é usado pelo col()
função.
Respostas:
0 para resposta № 1Existem dois col
funções: uma do Classe do conjunto de dados e um de org.apache.spark.sql.functions. Neste caso simples, ambos funcionariam:
t.where(t.col("A").gt(5).or(t.col("B").gt(5))).show() //from dataset
import org.apache.spark.sql.functions._
t.where(col("A").gt(5).or(col("B").gt(5))).show() //from functions
Dependendo de qual dos dois você quer evitar, você pode pegar o outro.
Se você usar Scala, também $
trabalho:
t.where($"A">5 or $"B">5).show
Você também pode mudar completamente para a sintaxe do sql:
t.where("A > 5 or B > 5").show
E se filter
é permitido, a versão lamdba também funcionaria:
t.filter(r => r.getInt(0) > 5 || r.getInt(1) > 5).show