中文文檔pyspark.sql.types

1class pyspark.sql.types.DataType

數(shù)據(jù)類型的基類。

10.1 fromInternal(obj)

將內(nèi)部SQL對象轉(zhuǎn)換為本機Python對象。

10.2 json()

10.3 jsonValue()

10.4 needConversion()

這種類型是否需要在Python對象和內(nèi)部SQL對象之間進行轉(zhuǎn)換?

這用于避免ArrayType / MapType / StructType的不必要的轉(zhuǎn)換。

10.5 simpleString()

10.6 toInternal(obj)

將Python對象轉(zhuǎn)換為內(nèi)部SQL對象。

2.class pyspark.sql.types.NullType

Null類型:表示無數(shù)據(jù)類型,用于無法推斷的類型。

3.class pyspark.sql.types.StringType

String 數(shù)據(jù)類型。

4.class pyspark.sql.types.BinaryType

二進制(字節(jié)數(shù)組)數(shù)據(jù)類型。

5.class pyspark.sql.types.BooleanType

Boolean 數(shù)據(jù)類型。

6.class pyspark.sql.types.DateType

Date (datetime.date) 數(shù)據(jù)類型。

7.class pyspark.sql.types.TimestampType

Timestamp (datetime.datetime) 數(shù)據(jù)類型。

8.class pyspark.sql.types.DecimalType(precision=10, scale=0)

Decimal (decimal.Decimal) 數(shù)據(jù)類型。

DecimalType必須具有固定的精度(最大總位數(shù))和比例(點右邊的位數(shù))。 例如,(5,2)可以支持[-999.99至999.99]之間的值。

precision可以達到38,scale要小于或等于precision。

創(chuàng)建DecimalType時,默認(rèn)的precision和scale是(10,0)。 當(dāng)從十進制對象中推斷模式時,它將是DecimalType(38,18)。

參數(shù):●?precision?– 最大的總位數(shù) (默認(rèn): 10)

●? scale – 點右側(cè)的位數(shù) (默認(rèn): 0)

9.class pyspark.sql.types.DoubleType

Double 數(shù)據(jù)類型,表示雙精度浮點數(shù)。

10.class pyspark.sql.types.FloatType

Float數(shù)據(jù)類型,表示單精度浮點數(shù)。

11.class pyspark.sql.types.ByteType

Byte 數(shù)據(jù)類型,即單個字節(jié)中的有符號整數(shù)。

12.class pyspark.sql.types.IntegerType

Int數(shù)據(jù)類型,即有符號的32位整數(shù)。

13.class pyspark.sql.types.LongType

Long數(shù)據(jù)類型,即有符號的64位整數(shù)。

如果數(shù)值超出[-9223372036854775808,9223372036854775807]的范圍,請使用DecimalType。

14.class pyspark.sql.types.ShortType

Short數(shù)據(jù)類型,即有符號的16位整數(shù)。

15.class pyspark.sql.types.ArrayType(elementType, containsNull=True)

數(shù)組數(shù)據(jù)類型。

參數(shù):●? elementType?– 數(shù)組中每個元素的DataType。

●?containsNull?– 布爾值,數(shù)組是否可以包含null(None)值。

16.class pyspark.sql.types.MapType(keyType, valueType, valueContainsNull=True)

Map數(shù)據(jù)類型。

參數(shù):●? keyType?– map中key的數(shù)據(jù)類型。

?●? valueType?– map中value的數(shù)據(jù)類型。

?●? valueContainsNull?– 指示values是否可以包含null(無)值。

map數(shù)據(jù)類型中的鍵不允許為null(無)。

17.class pyspark.sql.types.StructField(name, dataType, nullable=True, metadata=None)

StructType中的一個字段。

參數(shù):●?name?– 字符串,字段的名稱。

?●?dataType?– 字段的數(shù)據(jù)類型。

?●?nullable?– boolean,該字段是否可以為null(None)。

?●?metadata?– 從字符串到簡單類型的字典,可以自動內(nèi)部轉(zhuǎn)到JSON

18.class pyspark.sql.types.StructType(fields=None)

結(jié)構(gòu)類型,由StructField的列表組成。

這是表示一個行的數(shù)據(jù)類型。

18.1 add(field, data_type=None, nullable=True, metadata=None)

通過添加新元素來構(gòu)造一個StructType來定義schema。 該方法接受:

a:一個參數(shù)是一個StructField對象。

b:介于2到4之間的參數(shù)(name,data_type,nullable(可選),metadata(可選))。data_type參數(shù)可以是String或DataType對象。

>>>from pyspark.sql.types import *

>>>struct1 = StructType().add("f1", StringType(), True).add("f2", StringType(), True, None)

>>>struct2 = StructType([StructField("f1", StringType(), True), StructField("f2", StringType(), True, None)])

>>>struct1 == struct2 True

>>>struct1 = StructType().add(StructField("f1", StringType(), True))

>>>struct2 = StructType([StructField("f1", StringType(), True)])

>>>struct1 == struct2 True

>>>struct1 = StructType().add("f1", "string", True)

>>>struct2 = StructType([StructField("f1", StringType(), True)])

>>>struct1 == struct2

True

參數(shù):● ?field?– 字段的名稱或者StructField對象

? ? ? ? ● ?data_type?– 如果存在,則創(chuàng)建StructField的DataType

? ? ? ? ● ?nullable?– 要添加的字段是否可以是nullable (默認(rèn)True)

? ? ? ? ● ?metadata?– 任何其他元數(shù)據(jù)(默認(rèn)無)

返回:一個新的更新的StructType

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容