Spark SQL和DataFrames支持的数据格式

Spark SQL和DataFrames支持的数据格式如下:

数值类型 
ByteType: 代表1字节有符号整数. 数值范围: -128 到 127. 
ShortType: 代表2字节有符号整数. 数值范围: -32768 到 32767. 
IntegerType: 代表4字节有符号整数. 数值范围: -2147483648 t到 2147483647. 
LongType: 代表8字节有符号整数. 数值范围: -9223372036854775808 到 9223372036854775807. 
FloatType: 代表4字节单精度浮点数。 
DoubleType: 代表8字节双精度浮点数。 
DecimalType: 表示任意精度的有符号十进制数。内部使用java.math.BigDecimal.A实现。 
BigDecimal由一个任意精度的整数非标度值和一个32位的整数组成。 
String类型 
StringType: 表示字符串值。 
Binary类型 
BinaryType: 代表字节序列值。 
Boolean类型 
BooleanType: 代表布尔值。 
Datetime类型 
TimestampType: 代表包含的年、月、日、时、分和秒的时间值 
DateType: 代表包含的年、月、日的日期值 
复杂类型 
ArrayType(elementType, containsNull): 代表包含一系列类型为elementType的元素。如果在一个将ArrayType值的元素可以为空值,containsNull指示是否允许为空。 
MapType(keyType, valueType, valueContainsNull): 代表一系列键值对的集合。key不允许为空,valueContainsNull指示value是否允许为空 
StructType(fields): 代表带有一个StructFields(列)描述结构数据。 
StructField(name, dataType, nullable): 表示StructType中的一个字段。name表示列名、dataType表示数据类型、nullable指示是否允许为空。 
Spark SQL所有的数据类型在 org.apache.spark.sql.types 包内。不同语言访问或创建数据类型方法不一样:

1)python

代码中添加 from pyspark.sql.types import * 

__all__ = [
    "DataType", "NullType", "StringType", "BinaryType", "BooleanType", "DateType",
    "TimestampType", "DecimalType", "DoubleType", "FloatType", "ByteType", "IntegerType",
    "LongType", "ShortType", "ArrayType", "MapType", "StructField", "StructType"]

2)Scala 
代码中添加 import org.apache.spark.sql.types._,再进行数据类型访问或创建操作。 
scalaAccessDataTypes

3)Java 
可以使用 org.apache.spark.sql.types.DataTypes 中的工厂方法,如下表: 
javaAccessDataTypes

参考:https://blog.csdn.net/qq_33813365/article/details/70486814

你可能感兴趣的:(Spark,mysql)