Articles of apache spark sql

Spark SQL – carrega dados com o JDBC usando a instrução SQL, não o nome da tabela

Acho que estou perdendo alguma coisa, mas não consigo imaginar o que. Eu quero carregar dados usando SQLContext e JDBC usando declaração sql particular como select top 1000 text from table1 with (nolock) where threadid in ( select distinct id from table2 with (nolock) where flag=2 and date >= ‘1/1/2015’ and userid in (1, 2, […]

Explodir (transpor?) Várias colunas na tabela SQL do Spark

Estou usando o Spark SQL (menciono que está no Spark, caso isso afete a syntax SQL – não estou familiarizado o suficiente para ter certeza ainda) e tenho uma tabela que estou tentando re-estruturar, mas estou ficar preso tentando transpor várias colunas ao mesmo tempo. Basicamente eu tenho dados que se parecem com: userId someString […]

Função de janela do Spark SQL com condição complexa

Isto é provavelmente mais fácil de explicar através do exemplo. Suponha que eu tenha um DataFrame de logins de usuário para um site, por exemplo: scala> df.show(5) +—————-+———-+ | user_name|login_date| +—————-+———-+ |SirChillingtonIV|2012-01-04| |Booooooo99900098|2012-01-04| |Booooooo99900098|2012-01-06| | OprahWinfreyJr|2012-01-10| |SirChillingtonIV|2012-01-11| +—————-+———-+ only showing top 5 rows Eu gostaria de acrescentar a isso uma coluna indicando quando eles se […]

Múltiplas operações agregadas na mesma coluna de um dataframe de centelha

Eu tenho três matrizes do tipo string contendo as seguintes informações: array groupBy: contendo nomes das colunas pelas quais quero agrupar meus dados. matriz agregada: contendo nomes de colunas que quero agregar. matriz de operações: contendo as operações agregadas que quero executar Eu estou tentando usar frameworks de dados de faísca para conseguir isso. Os […]

Converter string pyspark em formato de data

Eu tenho uma data pyspark dataframe com uma coluna de cadeia no formato de MM-dd-yyyy e estou tentando converter isso em uma coluna de data. Eu tentei: df.select(to_date(df.STRING_COLUMN).alias(‘new_date’)).show() e eu recebo uma string de nulos. Alguém pode ajudar?

Achatando Linhas no Spark

Eu estou fazendo alguns testes de faísca usando scala. Geralmente lemos arquivos json que precisam ser manipulados como no exemplo a seguir: test.json: {“a”:1,”b”:[2,3]} val test = sqlContext.read.json(“test.json”) Como posso convertê-lo para o seguinte formato: {“a”:1,”b”:2} {“a”:1,”b”:3}

Como alterar os tipos de coluna no DataFrame do Spark SQL?

Suponha que eu esteja fazendo algo como: val df = sqlContext.load(“com.databricks.spark.csv”, Map(“path” -> “cars.csv”, “header” -> “true”)) df.printSchema() root |– year: string (nullable = true) |– make: string (nullable = true) |– model: string (nullable = true) |– comment: string (nullable = true) |– blank: string (nullable = true) df.show() year make model comment blank […]

Como evitar colunas duplicadas após a junit?

Eu tenho dois frameworks de dados com as seguintes colunas: df1.columns // Array(ts, id, X1, X2) e df2.columns // Array(ts, id, Y1, Y2) Depois eu faço val df_combined = df1.join(df2, Seq(ts,id)) Acabo com as seguintes colunas: Array(ts, id, X1, X2, ts, id, Y1, Y2) . Eu poderia esperar que as colunas comuns fossem descartadas. Existe […]

Como definir o esquema para o tipo personalizado no Spark SQL?

O código de exemplo a seguir tenta colocar alguns objects de caso em um dataframe. O código inclui a definição de uma hierarquia de objects de caso e uma class de caso usando esse traço: import org.apache.spark.{SparkContext, SparkConf} import org.apache.spark.sql.SQLContext sealed trait Some case object AType extends Some case object BType extends Some case class […]

Processando vários arquivos como RDDs independentes em paralelo

Eu tenho um cenário em que um certo número de operações, incluindo um grupo por, tem que ser aplicado em vários arquivos pequenos (~ 300MB cada). A operação parece com isso .. df.groupBy(….).agg(….) Agora, para processá-lo em vários arquivos, posso usar um curinga “/**/*.csv”, no entanto, isso cria um único RDD e particiona-o para as […]