2023春季工信部spark高级考试大题

刚考完spark高级,只记得四道大题,另一道忘记了,大家有需要可以参考一下;我的资源里面也有一些关于Spark的资料和试题,感兴趣的可以看一下。

1、将含有“spark”的 lable 标记为1,否则标记为0。

训练数据

train:

id text label

0 "a b c d e spark" 1.0

1 "b d" 0.0

2 "spark f g h" 1.0

3 "hadoop mapreduce" 0.0

测试数据

text:

id text

4 "spark i j k"

5 "l m n"

6 "spark hadoop spark"

7 "apache hadoop"

from pyspark.ml.feature import Tokenizer
from pyspark.ml.feature import HashingTF
from pyspark.ml.classification import LogisticRegression
from pyspark.ml import Pipeline

# 1.训练数据集(含标签)
training = spark.createDataFrame([
(0, "a b c d e spark", 1.0),
(1, "b d", 0.0),
(2, "spark f g h", 1.0),
(3, "hadoop mapreduce", 0.0)
], ["id", "text", "label"])

# 2.配置一个pipeline管道,包括转换器和评估器
tokenizer = Tokenizer(inputCol="text", outputCol="words") #分词
hashingTF = HashingTF(inputCol=tokenizer.getOutputCol(), outputCol="features") #hash分桶及词频率
统计
lr = LogisticRegression(maxIter=10, regParam=0.001) #逻辑回归算法
pipeline = Pipeline(stages=[tokenizer, hashingTF, lr])

# 3.用管道训练出模型
model = pipeline.fit(training)

# 4.测试数据(不含label标签)
test = spark.createDataFrame([
(4, "spark i j k"),
(5, "l m n"),
(6, "spark hadoop spark"),
(7, "apache hadoop")
], ["id", "text"])

# 5.用测试数据来预测
prediction = model.transform(test)

# 6.打印出感兴趣的列
selected = prediction.select("id", "text", "prediction")
for row in selected.collect():
rid, text, prediction = row
print("(%d, %s) --> prediction=%f" % (rid, text, prediction))

2、预测婴儿生存机会实验(可以参考下面这篇文章)

PySpark入门二十:ML预测婴儿生存几率--逻辑回归实践_enco=onehotencoder(inputcol='birth_place_int',outp_Roc Huang的博客-CSDN博客

4、读取book.txt文档,该文档从左到右的字段依次为“图书编号、图书名称、图书评级、图书价格、图书出版社、图书网址”,要求根据该文档内容生成DataFrame,并查询该文档前50行的信息。(推荐字段名称“id、name、price、publish、rating、url”)

from pyspark.sql import Row 

#读取数据 
book=spark.read.text("file:///home/ub01/data/book.txt")
#将book的DataFrame转换为RDD操作
book_rdd=book.rdd.map(lambda x:x[0].split(",")).map(lambda x:Row(id=x[0],name=x[1],rating=x[2],price=x[3],publish=x[4],url=x[5]))
#创建dataFrame 
book_df=spark.createDataFrame(book_rdd)
#查询前50行 
book_df.show(50)

5、根据第4题的book.txt文档,分组统计出版社的数量(只展示前10条),并且统计书名包含“微积分”的书的数量。

#分组统计出版社的数量 
book_df.groupBy('publish').count().show()
#统计书名包含“微积分”的书的数量
spark.sql("select count(*) counts from book_table where name like '%微积分%'").show()

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

音九尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值