Exemplos de código explicam o bucket da partição Hive e as funções personalizadas

Importar dados:

1 、

carrega o caminho local de dados '/root/tes.txt' na tabela test.usr;

  将本地的数据导入到hive中

2. Importar dados do cluster hdfs

carregar dados no caminho ' hdfs: // node01: 9000 / user / tes.txt ' na tabela test.te; o comando LOAD DATA pode ser dividido em LOAD DATA LOCAL INPATH e LOAD DATA INPATH. A diferença entre os dois é que LOCAL importa arquivos locais sem adicionar LOCAL é arquivos HDFS - o equivalente a carregar diretamente os arquivos de acordo.

3. insira em --- tabelas internas e externas, não adequadas para partição

4 、

da tabela1 insira em (sobrescrever) tabelas2 selecione id, nome

Tabela de partição

Partição Hive (dividida em diferentes diretórios de arquivo para armazenamento)

1. Partição estática:

O campo da partição correspondente deve ser especificado na definição da tabela - o campo da partição não deve duplicar o campo na tabela

uma instrução de criação de tabela de partição única:

crie a tabela day_table (id int, sequência de conteúdo) particionada por (dt int);

Carregar dados: carregar o caminho local de dados '/root/tes.txt' na partição test.usr da tabela (idade = 10);

Tabela de partição única, partição por dia, existem três colunas de id, content, dt na estrutura da tabela.

Use dt como a pasta para distinguir

Ao particionar a espessura e a resistência, você deve definir o ano, mês, dia, hora, minuto e segundo correspondentes de acordo com as necessidades da empresa - para reduzir o conteúdo em cada partição e melhorar a eficiência do cálculo

b) Instrução de criação de tabela de partição dupla:

criar hora da tabela (id int, sequência de conteúdo) particionada por (dt int, hour int);

A tabela de partição dupla, particionada por dia e hora, adicionou duas colunas dt e hora na estrutura da tabela.

Primeiro use dt como pasta e divida-o pela subpasta de horas

Adicionar partição

alterar hora da tabela e adicionar partição (dt = 10, hora = 40);

tabela de alerta tablename add partiton (dt = 20, hour = 40)

Em outras palavras, ao adicionar uma partição, você não pode adicioná-la diretamente, mas é necessário incluir a partição original para concluir a classificação correspondente.

Excluir partição

alterar tabela partição de descarte de nome de tabela (sexo = 'garoto')

tabela de alerta nome da tabela soltar partiton (dt = 20, hora = 40)

Nota: Ao excluir uma partição, todas as partições existentes serão excluídas

2. Partição dinâmica:

Maneiras de modificar permissões:

1 、 conf / hive-site.xml

2. Use o conjunto dentro da colmeia para definir adequadamente

3. Configure hive --conf hive.exec.dynamic.partiton = true quando o hive iniciar

Como modificar permissões

1. Modifique permissões

configure hive.exec.dynamic.partiton = true // Ative a partição dinâmica

2. Modifique o estado padrão

configure hive.exec.dynamic.partiton.mode = nostrict // O padrão estrito. Existe pelo menos uma partição estática

Crie uma tabela de partição:

criar tabela psn22 (id int, nome string, gosta de array <string>, mapa de endereço <string, string>) particionado por (idade int, sexo string) FORMATOS DE LINHA CAMPOS DELIMITADOS TERMINADOS POR ',' ITENS DE COLETA TERMINADOS POR ',' MAP CHAVES TERMINADAS POR ':' LINHAS TERMINADAS POR '\ t'

Gravar dados

from psn21 // Uma tabela e dados existentes devem ser inseridos sobrescrever a tabela pas22 partiton (idade, sexo) selecione * distribuir por idade, sexo

Mesa de barril:

Dados de teste

1 quarto, 11

Abra o balde

definir hive.enforce.bucketing = true

Crie um bucket

crie a tabela psnbucket1 (id int, name string, age int) agrupada por (age) em 4 campos delimitados por formato de linha de baldes terminados por ','

Carregar dados

inserir na tabela psnbucket selecione id, nome, idade a partir de psn31

Amostragem

selecione * no exemplo de tabela bucket_table (intervalo 1 de 4 por colimes)

Função personalizada

UDF:一对一

	1、继承UDF

	2、重写evaluate

	(实现传入的参数,并且封装了很多的方法)

classe pública AddPrefix estende UDF {/ **

  • Aqui implementamos a adição de informações de prefixo personalizado a qualquer entrada * / public String assessment (String str) {return "HIVE UDF Prefix:" + str;}}
UDAF:多对一

UDTF:一对多


1、创建udf自定义函数

2、达成jar包并上传到linux集群

3、将集群中的jar包上传到hive中:add jar /opt/software/jars/UDF.jar;

4、创建属于我自己的函数	

crie funções temporárias bws como "com.hpe.TestUdf.TestUdf"; 5. Use a função para executar

No entanto, ao criar uma função personalizada, geralmente é criada uma função temporária e está fora de questão quando é iniciada.Como você cria uma função permanente?

Registrar função personalizada de seção permanente

add jar的方式只是导入临时的jar文件,所以不能创建永久的自定义函数,想要添加永久的自定义函数需要在配置文件中对jar的引入进行修改



在hive-site.xml文件中添加

<property> <name> hive.aux.jars.path </name> <value> arquivo: ///opt/module/hive/lib/app_logs_hive.jar </value> </property>

注意:value中的值为你的udf.jar上传到linux的指定路径下,若是多个jar包,以,(逗号)进行分割

Aprenda todos juntos, preste atenção à conta pública WeChat da Java Architects Alliance e responda a palavras-chave em segundo plano para obter mais itens secos da tecnologia de arquitetura Java classificados pelo líder da pilha.

Publicado 78 artigos originais · Gosto1 · Visitantes1256

Acho que você gosta

Origin blog.csdn.net/weixin_42864905/article/details/105497896
Recomendado
Clasificación