étincelle ce type de données https://spark.apache.org/docs/latest/sql-reference.html
Spark Types de données
Types de données
SQL Spark et DataFrames prennent en charge les types de données suivants:
- Les types numériques
ByteType
: Représente 1 octet entier signé de nombres. Est de la gamme des nombres-128
à127
.ShortType
: Représente deux octets entier signé de nombres. Est de la gamme des nombres-32768
à32767
.IntegerType
: Représente 4-octet entier signé de nombres. Est de la gamme des nombres-2147483648
à2147483647
.LongType
: Représente 8 octets entier signé de nombres. Est de la gamme des nombres-9223372036854775808
à9223372036854775807
.FloatType
: Représente simple précision de 4 octets nombres à virgule flottante.DoubleType
: Représente double précision 8 octets nombres à virgule flottante.DecimalType
: Représente-précision arbitraire signé nombres décimaux. Soutenue en interne parjava.math.BigDecimal
. A estBigDecimal
constitué d'une précision arbitraire entier valeur non ajustée et une échelle de nombre entier de 32 bits.
- type string
StringType
: Représente les valeurs de chaîne de caractères.
- type binaire
BinaryType
: représente des valeurs de séquence octet.
- booléen
BooleanType
: Représente les valeurs booléennes.
- datetime Type
TimestampType
: Représente les valeurs comprenant des valeurs de champs année, mois, jour, heure, minute et seconde.DateType
: Représente les valeurs comprenant des valeurs de champs année, mois, jour.
- Les types complexes
ArrayType(elementType, containsNull)
: Représente les valeurs comprenant une séquence d'éléments avec le type deelementType
.containsNull
est utilisé pour indiquer si les éléments d'uneArrayType
valeur peuvent avoir desnull
valeurs.MapType(keyType, valueType, valueContainsNull)
: Représente des valeurs comprenant un ensemble de paires de valeurs de clé. Le type de données de clés sont décrites parkeyType
et le type de valeurs de données sont décrites parvalueType
. Pour uneMapType
valeur, les clés ne sont pas autorisés à avoir desnull
valeurs.valueContainsNull
est utilisé pour indiquer si les valeurs d'uneMapType
valeur peuvent avoir desnull
valeurs.StructType(fields)
: Représente les valeurs avec la structure décrite par une séquence deStructField
s (fields
).StructField(name, dataType, nullable)
: Représente un champ dans unStructType
. Le nom d'un champ est indiqué parname
. Le type de données d'un champ est indiqué pardataType
.nullable
est utilisé pour indiquer si les valeurs de ces champs peuvent avoir desnull
valeurs.
Correspondant au type de données ici pyspark pyspark.sql.types
Certains scénarios de conversion commun:
1. Convertis une date / horodatage / chaîne à une valeur de chaîne, la chaîne est convertie dans le format spécifié par le second argument
df.withColumn ( ' essai ' , F.date_format (col ( ' Last_Update ' ), " aaaa / MM / dd " )). show ()
2. se transformer en une chaîne, peut être jeté dans le type que vous voulez, comme suivant le type de date
df = df.withColumn ( ' Date ' , F.date_format (col ( ' Last_Update ' ), " aaaa-MM-dd " ) .alias ( ' ts ' ) .cast ( " la date " ))
3. Le nombre d'horodatage secondes (depuis le début de 1970) se transformer en une chaîne de format de date
4. unix_timestamp Chaîne à horodater les secondes date, l'opération est l'opération inverse de ce qui précède
Parce que unix_timestamp pas considérer ms, ms doivent prendre en compte si vous pouvez utiliser la méthode suivante
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 ( ' float ' ) / 1000)
5. secondes d'horodatage converti de type horodatage, peut être utilisé F.to_timestamp
Ref: