机器学习_PySpark-3.0.3字符标签索引化(StringIndex)实例
StringIndexer 是 PySpark-3.0.3 中用于将字符串列转换为数值索引的转换器。
它会根据字符串的出现频率为每个唯一字符串分配一个整数索引。
如果你的字符串类型的日期列是连续的, 频率相同, StringIndexer 会为每个不同的字符串分配一个整数索引, 而不考虑它们的实际顺序。
不考虑它们的实际顺序, 这可能导致模型在处理字符串类型的日期时不会考虑到它们之间的实际顺序关系。
导入 pyspark.sql 相关模块
Spark SQL 是用于结构化数据处理的 Spark 模块。它提供了一种成为 DataFrame 编程抽象, 是由 SchemaRDD 发展而来。
不同于 SchemaRDD 直接继承 RDD, DataFrame 自己实现了 RDD 的绝大多数功能。
from pyspark.sql import SparkSession
from pyspark.ml.feature import StringIndexer
创建 SparkSession 对象
Spark 2.0 以上版本的 spark-shell 在启动时会自动创建一个名为 spark 的 SparkSession 对象。
当需要手工创建时, SparkSession 可以由其伴生对象的 builder 方法创建出来。
spark = SparkSession.builder.master("local[*]").appName("spark").getOrCreate()
使用 Spark 构建 DataFrame 数据 (行作为元组, 列名作为列表)
当数据量较小时, 可以使用该方法手工构建 DataFrame 数据。
构建数据行 Rows (元组的列表):
Data_Rows = [("Alice", 25, "Female"),
("Bob", 30, "Male"),
("Charlie", 35, "Male")]
构建数据列名 Cols (字符串的列表):
Data_Cols = ["Name"