Cargando datos de spam SMS
Has visto que es posible inferir los tipos de datos directamente a partir de los datos. A veces resulta útil tener control directo sobre los tipos de columna. Para ello, define un esquema explícito.
El archivo sms.csv
contiene una selección de mensajes SMS que han sido clasificados como «spam» o «ham». Estos datos han sido adaptados del Repositorio de Machine Learning de la UCI. Hay un total de 5574 SMS, de los cuales 747 han sido etiquetados como spam.
Notas sobre el formato CSV:
- sin registro de encabezado y
- Los campos están separados por un punto y coma (este no es el separador predeterminado).
Diccionario de datos:
id
— identificador del registrotext
— contenido del mensaje SMSlabel
— spam o ham (entero; 0 = ham y 1 = spam)
Este ejercicio forma parte del curso
Machine learning con PySpark
Instrucciones del ejercicio
- Especifica el esquema de datos, indicando los nombres de las columnas (
"id"
,"text"
y"label"
) y los tipos de columna. - Lee los datos de un archivo delimitado llamado
"sms.csv"
. - Imprime el esquema del DataFrame resultante.
Ejercicio interactivo práctico
Prueba este ejercicio completando el código de muestra.
from pyspark.sql.types import StructType, StructField, IntegerType, StringType
# Specify column names and types
schema = StructType([
StructField("____", IntegerType()),
____("____", ____()),
____("____", ____())
])
# Load data from a delimited file
sms = spark.read.csv(____, sep=____, header=____, ____=____)
# Print schema of DataFrame
sms.____()