如何根据 Colab 笔记本中 PySpark 中的首字母对名称列表进行分类?

How to categorize the list of names based on their first letter in PySpark in Colab notebook?

我想使用 groupby 和 map 命令根据名称的第一个字符对名称列表进行分类。此列表包含许多名称。我应该怎么做?谁能帮我?我使用 pysperk 在 Colab 笔记本中编写代码。我是初学者,不知道怎么做。

arrayStructureData = [
    ("Sajad","M"),
    ("Hassan","F"),
    ("Ali","F"),
    ("Hossein","M")]
arrayStructureSchema = StructType([
     StructField('Name', StringType(), True),
     StructField('gender', StringType(), True)
     ])
df = spark.createDataFrame(data = arrayStructureData, schema = arrayStructureSchema)

使用 substring 然后 groupby?

from pyspark.sql import functions as F

(df
    .withColumn('c', F.substring('Name', 0, 1))
    .groupBy('c')
    .agg(
        F.count('*').alias('cnt')
    )
    .show()
)

+---+---+
|  c|cnt|
+---+---+
|  A|  1|
|  S|  1|
|  H|  2|
+---+---+