chispa qué tipo de datos https://spark.apache.org/docs/latest/sql-reference.html
Spark tipos de datos
Tipos de datos
SQL chispa y tramas de datos compatibles con los siguientes tipos de datos:
- tipos numéricos
ByteType
: Representa 1 byte entero de números. El rango de números es de-128
a127
.ShortType
: Representa 2 bytes entero de números. El rango de números es de-32768
a32767
.IntegerType
: Representa 4 bytes entero de números. El rango de números es de-2147483648
a2147483647
.LongType
: Representa 8 bytes entero de números. El rango de números es de-9223372036854775808
a9223372036854775807
.FloatType
: Representa de 4 bytes precisión simple de números de punto flotante.DoubleType
: Representa el 8 bytes de doble precisión números de punto flotante.DecimalType
: Representa los números decimales con signo de precisión arbitraria. Con el respaldo internamentejava.math.BigDecimal
. ABigDecimal
consiste en una precisión arbitraria número entero valor sin escala y una escala de número entero de 32 bits.
- tipo de cadena
StringType
: Representa los valores de cadena de caracteres.
- tipo binario
BinaryType
: representa byte valores de secuencia.
- tipo booleano
BooleanType
: Representa los valores booleanos.
- fecha y hora tipo
TimestampType
: Representa los valores que comprende valores de los campos año, mes, día, hora, minuto y segundo.DateType
: Representa los valores que comprenden valores de los campos año, mes, día.
- Los tipos complejos
ArrayType(elementType, containsNull)
: Representa los valores que comprenden una secuencia de elementos con el tipo deelementType
.containsNull
se usa para indicar si los elementos en unArrayType
valor pueden tenernull
valores.MapType(keyType, valueType, valueContainsNull)
: Representa los valores que comprende un conjunto de pares de clave y valor. El tipo de datos de claves se describen porkeyType
y el tipo de datos de los valores se describen porvalueType
. Para unMapType
valor, llaves no se les permite tenernull
valores.valueContainsNull
se utiliza para indicar si los valores de unMapType
valor pueden tenernull
valores.StructType(fields)
: Valores representa con la estructura descrita por una secuencia deStructField
s (fields
).StructField(name, dataType, nullable)
: Representa un campo de unaStructType
. El nombre de un campo se indica mediantename
. El tipo de datos de un campo está indicada pordataType
.nullable
se utiliza para indicar si los valores de estos campos pueden tenernull
valores.
En correspondencia con el tipo de datos que aquí pyspark pyspark.sql.types
Algunos supuestos de conversión común:
1. Convierte una fecha / fecha y hora / cadena en un valor de cadena, la cadena se convierte en el formato especificado por el segundo argumento
df.withColumn ( ' prueba ' , F.date_format (col ( ' last_update ' ), " aaaa / MM / dd " )). show ()
2. A su vez en una cadena, se puede convertir en el tipo que desee, tal como después del tipo de fecha
df = df.withColumn ( ' fecha ' , F.date_format (col ( ' last_update ' ), " aaaa-MM-dd " .alias quiere) ( ' ts ' ) .cast ( " fecha " ))
3. El número de marca de tiempo de segundos (desde el comienzo de 1970) se convierten en una cadena de formato de fecha
4. UNIX_TIMESTAMP cadena a Timestamp La segundos de la fecha, la operación es la operación inversa de la anteriormente
Debido a que no considera UNIX_TIMESTAMP ms, deben tener en cuenta si se puede utilizar el siguiente método
df1 = df.withColumn ( " UNIX_TIMESTAMP " , F.unix_timestamp (df.TIME, ' dd-MMM-aaaa HH: mm: SS.sss z ' ) + F.substring (df.TIME, -7,3) .cast ( ' flotador ' ) / 1000)
5. segundo sello de tiempo convierten tipo de marca de tiempo, se puede utilizar F.to_timestamp
Árbitro: