41、修改 word_count_submit.py 脚本,使其返回给定文本文件中仅出现一次的五个单词样本。
可按以下思路修改脚本:
- 读取文本文件
- 对文本进行分词、清理(去除标点、转换为小写等)
- 统计每个单词的出现次数
- 筛选出仅出现一次的单词
- 最从中随机抽取五个单词
42、使用子字符串函数,返回最常见的前五个首字母(仅保留每个单词的首字母)。
可通过以下步骤实现:
- 使用
substring函数提取每个单词的首字母; - 对首字母进行分组;
- 统计每个首字母的出现次数;
- 按照出现次数降序排序;
- 取前五个结果。
示例代码如下:
from pyspark.sql import SparkSession
from pyspark.sql.functions import substring, col
# 创建 SparkSession
spark = SparkSession.builder.appName('TopFirstLetters').getOrCreate()
# 假设 words_nonull 是已有的 DataFrame,包含 'word' 列
words_nonull = spark.createDataFrame([('apple',), ('banana',), ('cherry',), ('date',), ('elderberry',), ('fig',), ('grape',), ('honeydew',), ('kiwi',), ('lemon',)], ['word'])
# 提取每个单词的首字母
first_letters = words_nonull.select(substring(col('word'), 1, 1).alias('first_letter'))
# 分组并统计每个首字母的出现次数
letter_counts = first_letters.groupBy('first_letter').count()
# 按出现次数降序排序并取前五个
top_five_letters = letter_counts.orderBy(col('count').desc()).limit(5)
# 显示结果
print(top_five_letters.show())
43、创建一个新的数据框 logs_clean,其中只包含不以 ID 结尾的列。假设已有一个名为 logs 的数据框。
可使用如下代码实现:首先获取不以 ID 结尾的列名列表,然后使用 select 方法选择这些列创建新的数据框。示例代码如下:
# 获取不以 ID 结尾的列名
columns_to_keep = [col for col in logs.columns if not col.endswith('ID')]
# 创建新的数据框
logs_clean = logs.select(*columns_to_keep)
44、在 commercials.py 返回的数据框中,根据每个频道的 commercial_ratio 将其划分到不同的区间,并返回每个区间内的频道数量。(提示:查看 round 函数的文档以了解如何对值进行四舍五入。)
使用 round 函数对 commercial_ratio 进行四舍五入:
rounded_ratio = round(commercial_ratio)
然后根据四舍五入后的值进行分组:
grouped_channels = channels.groupby(rounded_ratio)
最后统计每个组内的频道数量:
channel_count = grouped_channels.size()
45、考虑到在数据框中也使用句点或方括号来访问层级实体,为什么在列名中使用它们是个坏主意?
一般来说,在列名中使用句点或方括号会造成混淆,因为这些符号通常用于访问嵌套结构中的子字段,可能导致代码难以理解和维护,也可能在解析列名时引发错误。
46、虽然不太常见,但你可以从字典创建数据框。由于字典与JSON文档非常接近,请构建用于导入以下字典的模式(这里JSON或PySpark模式均有效)。字典为 {‘one’: 1, ‘two’: [1,2,3]},使用该模式创建数据框的代码示例为 spark.createDataFrame([{“one”: 1, “two”: [1,2,3]}], schema=dict_schema) 。
import pyspark.sql.types as T
dict_schema = T.StructType([
T.StructField('one', T.IntegerType(), True),
T.StructField('two', T.ArrayType(T.IntegerType()), True)
])

最低0.47元/天 解锁文章
2929

被折叠的 条评论
为什么被折叠?



