PySpark 扩展类型 - AWS Glue

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

PySpark 扩展类型

AWS Glue PySpark 扩展所使用的类型。

DataType

其他 AWS Glue 类型的基类。

__init__(properties={})
  • properties – 数据类型的属性 (可选)。

typeName(cls)

返回 AWS Glue 类型类的类型(即,类名,其“Type”会从末尾删除)。

  • cls – 一个派生自 AWS Glue 的 DataType 类实例。

jsonValue( )

返回一个包含类的数据类型和属性的 JSON 对象:

{ "dataType": typeName, "properties": properties }

AtomicType 和简单衍生

继承自并扩展 DataType 类,并且充当所有 AWS Glue 原子数据类型的基类。

fromJsonValue(cls, json_value)

使用 JSON 对象中的值初始化类实例。

  • cls – 一个要初始化的 AWS Glue 类型类。

  • json_value – 要从其中加载键-值对的 JSON 对象。

以下类型是 AtomicType 类的简单衍生:

  • BinaryType – 二进制数据。

  • BooleanType – 布尔值。

  • ByteType – 一个字节值。

  • DateType – 一个日期时间值。

  • DoubleType – 一个双精度浮点值。

  • IntegerType – 一个整数值。

  • LongType – 一个长整数值。

  • NullType – 一个空值。

  • ShortType – 一个短整数值。

  • StringType – 一个文本字符串。

  • TimestampType – 一个时间戳值 (通常以秒为单位,从 1/1/1970 开始)。

  • UnknownType – 一个未知类型的值。

DecimalType(AtomicType)

继承自并扩展 AtomicType 类以表示十进制数字 (以十进制数字表示的数字,与二进制以 2 为底数的数字相对)。

__init__(precision=10, scale=2, properties={})
  • precision – 十进制数中的位数 (可选;默认值为 10)。

  • scale – 小数点右侧的位数 (可选;默认值为 2)。

  • properties – 十进制数字的属性 (可选)。

EnumType(AtomicType)

继承自并扩展 AtomicType 类以表示有效选项的枚举。

__init__(options)
  • options – 正被枚举的选项的列表。

 集合类型

ArrayType(DataType)

__init__(elementType=UnknownType(), properties={})
  • elementType – 数组中的元素的类型 (可选;默认值为 UnknownType)。

  • properties – 数组的属性 (可选)。

ChoiceType(DataType)

__init__(choices=[], properties={})
  • choices – 可能选项的列表 (可选)。

  • properties – 这些选项的属性 (可选)。

add(new_choice)

将新选项添加到可能的选项列表中。

  • new_choice – 要添加到可能选项列表中的选项。

merge(new_choices)

将新选项列表与现有选项列表合并。

  • new_choices – 要与现有选项列表合并的新选项列表。

MapType(DataType)

__init__(valueType=UnknownType, properties={})
  • valueType – 映射中的值的类型 (可选;默认值为 UnknownType)。

  • properties – 映射的属性 (可选)。

Field(Object)

根据从 DataType 派生的对象创建一个字段对象。

__init__(name, dataType, properties={})
  • name – 要为字段分配的名称。

  • dataType – 要从中创建字段的对象。

  • properties – 字段的属性 (可选)。

StructType(DataType)

定义数据结构 (struct)。

__init__(fields=[], properties={})
  • fields – 要在结构中包括的字段的列表 (类型为 Field) (可选)。

  • properties – 结构的属性 (可选)。

add(field)
  • field – 要添加到结构中的类型 Field 的对象。

hasField(field)

如果此结构具有同名字段,则返回 True,否则返回 False

  • field – 一个字段名称,或其名称被使用的类型 Field 的对象。

getField(field)
  • field – 一个字段名称,或其名称被使用的类型 Field 的对象。如果此结构具有同名字段,则返回它。

EntityType(DataType)

__init__(entity, base_type, properties)

此类尚未实现。

 其他类型

DataSource(object)

__init__(j_source, sql_ctx, name)
  • j_source – 数据源。

  • sql_ctx – SQL 上下文。

  • name – 数据源名称。

setFormat(format, **options)

getFrame()

为数据源返回 DynamicFrame

DataSink(object)

__init__(j_sink, sql_ctx)
  • j_sink – 要创建的堆栈。

  • sql_ctx – 数据接收器的 SQL 上下文。

setFormat(format, **options)

setAccumulableSize(size)
  • size – 要设置的可累积大小 (以字节为单位)。

writeFrame(dynamic_frame, info="")
  • dynamic_frame – 要编写的 DynamicFrame

  • info – 有关 DynamicFrame 的信息 (可选)。

write(dynamic_frame_or_dfc, info="")

写入 DynamicFrameDynamicFrameCollection

  • dynamic_frame_or_dfc – 将被写入的 DynamicFrame 对象或 DynamicFrameCollection 对象。

  • info – 有关将被写入的 DynamicFrameDynamicFrames 的信息 (可选)。