Colección de citas famosas - Slogan de motivación - Conjunto de datos de Youtube de Hive Combat

Conjunto de datos de Youtube de Hive Combat

Los datos reales provienen de un conjunto de datos de estadísticas de videos de YouTube y redes sociales rastreados por la Facultad de Computación de la Universidad Simon Fraser en 2008.

Dirección del conjunto de datos

Utilice "\t" como separador entre datos.

Los datos específicos son los siguientes:

El volumen de datos es 1G, el número de artículos es más de 5 millones

El entorno de uso es

hive-1.1.0-CD H5 4 . 5

hadoop-2.6.0-cdh5.4.5

El formato de demostración es utilizar Hive Shell.

Echemos un vistazo a los datos

El principal problema radica en el procesamiento de categorías e identificadores relacionados. Debido a que Hive admite el formato de matriz, pensamos en usar matrices para almacenar categorías e ID relacionados, pero descubrimos que el separador de categorías es "&". El delimitador de los ID realizados es "\t". Podemos especificar el delimitador de la matriz al crear la tabla, pero solo podemos especificar un delimitador, por lo que debemos convertir y limpiar los datos antes de importarlos a la tabla de Hive.

Y debe haber algunos datos incompletos y algunos formatos extraños en los datos, por lo que es necesario limpiarlos. El método de limpieza de datos que estoy usando aquí es Spark, o puedes usar una función UDF personalizada para limpiarlo.

Notas sobre la limpieza de datos

1) Podemos ver que cada fila de datos está separada por "\t", cada fila tiene diez columnas de datos y el ID de correlación del última columna Puede estar vacía, por lo que el tamaño de la matriz es mayor que 8 después de dividir los datos.

2) Hay "unik xdA8 eyq krqe 1035 noticias y política 107", por lo que debe prestar atención a noticias y política y amp

Los datos procesados ​​son los siguientes :

El siguiente combate real se basa en datos limpios.

1) Creación de YouTube 1, el formato del archivo es archivo de texto.

Crear tabla YouTube 1 (cadena de identificación de video, cadena de carga, número entero de edad, matriz de categorías y cadena lt y gt, longitud int, vistas int, tasa flotante, calificaciones int, comentarios int, matriz de relatedId y ltstring>)

Formato de filas delimitadas

Campos que terminan en "\t"

Elementos de colección que terminan en "&"

Guardar como archivo de texto;

2) Crea YouTube 2, el formato del archivo es orc.

Crear tabla YouTube 2 (cadena de identificación de video, cadena de carga, edad int, matriz de categorías y cadena lt y gt, longitud int, vistas int, tasa flotante, calificaciones int, comentarios int, matriz de relatedId y cadena lt& gt)

Formato de línea delimitado

Campos que terminan en "\t"

Elementos de colección que terminan en "& amp"

p>

Almacenado como orc

3) Cree YouTube 3, el formato de archivo es orc y particione el depósito.

Crear tabla YouTube 3 (cadena de identificación de video, cadena de descarga, edad int, matriz de categorías <string>, longitud int, vistas int, tasa flotante, calificaciones int, comentarios int, matriz de relatedId & ltstring& gt)

Reunidos en 8 depósitos por (cargador)

Formato de línea separado

Campos que terminan en "\t"

Elementos de la colección terminados en "& amp "

Almacenado como orc

Importación de datos:

1) Agregue la ruta "path" Los datos se cargan en la tabla youtube1;

2) Dado que los datos en formato de archivo de texto no se pueden importar a la tabla de formato orco, los datos deben importarse de youtube1 a youtube2 y youtube3:

Insertar en la tabla YouTube 2, seleccione * de YouTube 1;

Insertar en la tabla YouTube 3 seleccionar * de YouTube 1;

1) Crear user_tmp, el formato de archivo es un archivo de texto, 24 depósitos.

Crear tabla user_tmp (cadena de carga, número entero de video, número entero de amigo)

Grupo (cargador) en 24 depósitos

Formato de filas separadas

Campos que terminan en "\t"

Almacenados como archivos de texto;

2) Crear 2) usuario, formato de archivo orco, 24 depósitos.

Crear usuario de tabla (cadena de carga, video int, amigo int)

Reunidos en 24 depósitos por (cargador)

Formato de filas separadas

Campos que terminan en "\t"

Almacenados como orc

Lo mismo ocurre con la importación de datos desde tablas de usuario.

Importación de datos:

1) Cargue los datos en la ruta "ruta" en la tabla user_tmp

2) Los datos en formato de archivo de texto no se pueden importar; en la tabla de formato orco, por lo que los datos deben importarse desde user_tmp al usuario:

insertar en la tabla user select * from user_tmp;

1) Cuente los 10 videos más vistos .

2) Estadísticas de los 10 tipos de categorías de vídeos más populares.

3) Cuenta las categorías de los 50 mejores vídeos.

4) Cuente las clasificaciones de categorías de videos asociados con los N videos principales con más vistas.

5) Filtra los 10 vídeos más populares de cada categoría.

6) Filtra los 10 vídeos con mayor puntuación en cada categoría.

7) Encuentra todos los vídeos de los 10 usuarios que más vídeos suben.

8) Filtrar las vistas de cada categoría: Top10.

seleccione * de YouTube 3 ordenar por vistas desc límite 10

Los resultados son los siguientes:

seleccione tagId, cuente (un . ID de video) como; suma de (seleccione ID de video, ID de etiqueta de la vista lateral de youtube3 explotar (categoría) catoria como ID de etiqueta) un grupo por orden de ID de etiqueta por límite de descripción de suma 10; tagId, contar (un . ID de video) como suma de (seleccionar ID de video, tagId de (seleccionar * de YouTube 3 ordenar por vistas desc límite 20) y vista lateral explotar (categoría) catory como tagId) un grupo por un orden de tagId. por suma desc ;

Resultados:

Ideas:

Resultados:

Ideas:

Los resultados son de la siguiente manera:

seleccione * de youtube_category donde categoríaId = "Música" ordenar por calificaciones desc límite 10;

Los resultados son los siguientes:

Ideas:

Los resultados son los siguientes: