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()

 

你可能感兴趣的:(spark,大数据)