Spark SQL - conjuntos de dados JSON
O Spark SQL pode capturar automaticamente o esquema de um conjunto de dados JSON e carregá-lo como um DataFrame. Esta conversão pode ser feita usandoSQLContext.read.json() em um RDD de String ou em um arquivo JSON.
O Spark SQL oferece uma opção para consultar dados JSON junto com a captura automática de esquemas JSON para leitura e gravação de dados. O Spark SQL entende os campos aninhados nos dados JSON e permite que os usuários acessem diretamente esses campos sem quaisquer transformações explícitas.
Exemplo
Vamos considerar um exemplo de employee registros em um arquivo de texto chamado employee.json. Use os comandos a seguir para criar um DataFrame (df).
Leia um documento JSON chamado employee.json com o seguinte conteúdo e gere uma tabela com base no esquema no documento JSON.
employee.json - Coloque este arquivo no diretório onde o atual scala> o ponteiro está localizado.
{
{"id" : "1201", "name" : "satish", "age" : "25"}
{"id" : "1202", "name" : "krishna", "age" : "28"}
{"id" : "1203", "name" : "amith", "age" : "39"}
{"id" : "1204", "name" : "javed", "age" : "23"}
{"id" : "1205", "name" : "prudvi", "age" : "23"}
}
Vamos realizar algumas operações de Data Frame em dados dados.
Operações de DataFrame
DataFrame fornece uma linguagem específica de domínio para manipulação de dados estruturados. Aqui, incluímos alguns exemplos básicos de processamento de dados estruturados usando DataFrames.
Siga as etapas fornecidas abaixo para realizar operações DataFrame -
Leia o documento JSON
Em primeiro lugar, temos que ler o documento JSON. Com base nisso, gere um DataFrame chamadodfs.
Use o seguinte comando para ler o documento JSON denominado employee.jsoncontendo os campos - id, nome e idade. Ele cria um DataFrame chamadodfs.
scala> val dfs = sqlContext.read.json("employee.json")
Output - Os nomes dos campos são retirados automaticamente de employee.json.
dfs: org.apache.spark.sql.DataFrame = [age: string, id: string, name: string]
Use o método printSchema
Se você quiser ver a Estrutura (Esquema) do DataFrame, use o seguinte comando.
scala> dfs.printSchema()
Output
root
|-- age: string (nullable = true)
|-- id: string (nullable = true)
|-- name: string (nullable = true)
Mostra os dados
Se você deseja mostrar os dados no DataFrame, use o seguinte comando.
scala> dfs.show()
Output - Você pode ver os dados do funcionário em um formato tabular.
<console>:22, took 0.052610 s
+----+------+--------+
|age | id | name |
+----+------+--------+
| 25 | 1201 | satish |
| 28 | 1202 | krishna|
| 39 | 1203 | amith |
| 23 | 1204 | javed |
| 23 | 1205 | prudvi |
+----+------+--------+
Então, podemos executar diferentes instruções SQL nele. Os usuários podem migrar dados para o formato JSON com mínimo esforço, independentemente da origem da fonte de dados.