【大数据存储与处理】第四次作业

一. 简答题(共8题)

1. (简答题)此题为mongodb操作题,使用在线平台或分享的虚拟机平台软件,写出命令,并把结果截图一起提交。对testdb数据库items集合进行聚合分组,然后在统计卖出的平均数量(“quantity”)。

正确答案:
db.items.aggregate([{KaTeX parse error: Expected '}', got 'EOF' at end of input: group:{_id:"pnumber",average:{ a v g : " avg:" avg:"quantity"}}}])
在这里插入图片描述

2. (简答题)此题为HBase操作题,使用在线平台或分享的虚拟机平台软件,查询student表中StuInfo列族Age列中值等于19的所有键值对。

正确答案:
scan ‘student’,{COLUMN=>‘StuInfo:Age’,FILTER=>“SingleColumnValueFilter(‘StuInfo’,‘Age’,=,‘binary:19’)”}
在这里插入图片描述

3. (简答题)此题为mongodb操作题,使用在线平台或分享的虚拟机平台软件,写出命令,并把结果截图一起提交。使用游标,输出testdb数据库book集合中“price”>=60的所有文档信息。

正确答案:
var cursor = db.book.find({“price”:{$gte:60}})

while(cursor.hasNext()) {printjson(cursor.next())}
在这里插入图片描述

4. (简答题)此题为mongodb操作题,使用在线平台或分享的虚拟机平台软件,写出命令,并把结果截图一起提交。修改test数据库sales集合中所有quantity键值为10的文档改成quantity键值为80。

正确答案:
db.sales.update({“quantity”:10},{$set:{“quantity”:80}},0,1)

db.sales.find()
在这里插入图片描述

5. (简答题)此题为mongodb操作题,使用在线平台或分享的虚拟机平台软件,写出命令,并把结果截图一起提交。查询test数据库book集合中price在[45,60)范围、或者出版社是“机械工业出版社”的图书信息(即45=<price<60),要求返回by、price、title键值对,其他键值对不显示。

正确答案:
db.book.find({KaTeX parse error: Expected '}', got 'EOF' at end of input: or:[{"price":{"gte":45,“$lt”:60}},{“by”:“机械工业出版社”}]},{“_id”:0,“by”:1,“price”:1,“title”:1})

在这里插入图片描述

6. (简答题)此题为mongodb操作题,使用在线平台或分享的虚拟机平台软件,写出命令,并把打开result.txt结果截图一起提交。把testdb数据库book集合中的文档数据导出,保存到/home/hadoop/result.txt。

我的答案:
mongoexport --db testdb --collection book --out /home/hadoop/result.txt

正确答案:
mongoexport -h 192.168.226.132:27017 -d testdb -c book -o /home/hadoop/result.txt
在这里插入图片描述

7. (简答题)

建立mytest数据库,建立fruit集合,键值对输入如下表文档,并截图输入结果。

在这里插入图片描述

正确答案:
db.fruit.insert({“_id”:1,“fruits”:[“apple”, “banana”, “peach”]})

db.fruit.insert({“_id”:2,“fruits”:[ “apple”,“cherry”,“orange”]})
在这里插入图片描述

8. (简答题)此题为mongodb操作题,使用在线平台或分享的虚拟机平台软件,在testdb数据库中c3集合中第一条文档里的fruit数组添加信息:grape。写出命令,并把结果截图一起提交。

正确答案:
db.c3.update({“_id”: ObjectId(“610d803f8bbd7614abe4ad36”)},{$addToSet:{fruit:“grape”}})

db.c3.find()

在这里插入图片描述

二. 应用题(共4题)

9. (应用题)使用在线平台或分享的虚拟机平台软件,写出命令,并把运行结果截图一起提交。使用MongoDB中的MapReduce查询testdb数据库items集合中数量“quantity”大于5的商品编号(“pnumber”)。

正确答案:
var map=function(){emit(this.pnumber,this.quantity)}

var reduce=function(key,value){return value.join(‘,’)}

var options={query:{quantity:{$gt:5}},out:“pnumber”}

db.items.mapReduce(map,reduce,options);

db.pnumber.find()
在这里插入图片描述

10. (应用题)MongoDB python编程。使用在线平台或分享的虚拟机平台软件,写出程序,并把运行结果截图一起提交。Python编程新建runoobdb数据库中并在runoobdb数据库新建commodity集合,并插入文档{ “_id” : 1, “item” : “abc”, “price” : 10, “quantity” : 2 },并打印出该集合中的文档数据。

正确答案:
import pymongo

myclient = pymongo.MongoClient(“mongodb://192.168.126.140:27017/”)

mydb = myclient[“runoobdb”]

mycol = mydb[“commodity”]

mydict = {“_id” : 1, “item” : “abc”, “price” : 10, “quantity” : 2 }

x = mycol.insert_one(mydict)

for result in mycol.find():

print(result)
在这里插入图片描述

11. (应用题)

此题为操作题,使用在线平台或分享的虚拟机平台软件。文档替换,把mytest数据库中mybook集合中如图1所示的文档替换成图2的新文档,如集合不存在,自行创建并录入数据。列出相关命令或程序,结果截图。(7分)
在这里插入图片描述

正确答案:
use mytest

db.mybook.insert({“_id”:2,“title”:“Nosql”,“by”:“ptpress”,“author”:“Jack”,“price”:45,“description”:“Database”})

var u=db.mybook.findOne({“title”:“Nosql”})

u.bookinfo={“author”:u.author,“price”:u.price}

u.bookname=u.title

delete u.author

delete u.price

delete u.title

db.mybook.update({“title”:“Nosql”},u)

db.mybook.find().pretty()

12. (应用题)HBase python编程,使用在线平台或分享的虚拟机平台软件,写出程序,并把运行结果截图一起提交。编程在HBase数据库中新建test数据表,列族为:cf,并打印出所有数据库表名。

正确答案:
(1)启动驱动程序命令:

hbase thrift start

(2)参考程序如下:

from thrift.transport import TSocket

from thrift.protocol import TBinaryProtocol

from thrift.transport import TTransport

from hbase import Hbase

from hbase.ttypes import *

transport = TSocket.TSocket(‘192.168.126.140’,9090)

transport = TTransport.TBufferedTransport(transport)

protocol = TBinaryProtocol.TBinaryProtocol(transport)

client = Hbase.Client(protocol)

transport.open()

contents = ColumnDescriptor(name=‘cf:’, maxVersions=1)

client.createTable(‘test’, [contents])

result=client.getTableNames()

print (result)

(3)运行结果:

在这里插入图片描述

MongoDB:

  1. 聚合:

    • 使用 $group 阶段对文档进行聚合操作,可以对数据进行分组、计数等操作。
    db.collection.aggregate([
       { $group: { _id: "$field", count: { $sum: 1 } } }
    ])
    
  2. 查询:

    • 使用 find 命令进行查询,并通过条件筛选数据。
    db.collection.find({ field: value })
    
  3. 更新:

    • 使用 update 命令修改文档中的数据。
    db.collection.update({ field: value }, { $set: { newField: newValue } })
    
  4. 导出:

    • 使用 mongoexport 命令导出集合数据到 JSON 或 CSV 文件。
    mongoexport --db dbName --collection collectionName --out outputFile.json
    
  5. 数组操作:

    • 使用 $addToSet 操作符将元素添加到数组中,确保唯一性。
    db.collection.update({ _id: docId }, { $addToSet: { arrayField: newValue } })
    
  6. MapReduce:

    • 使用 MapReduce 进行复杂的数据分析。
    db.collection.mapReduce(
       function() { emit(this.field, 1); },
       function(key, values) { return Array.sum(values); },
       { out: "resultCollection" }
    )
    
  7. Python编程:

    • 使用 PyMongo 库与 MongoDB 进行交互。
    from pymongo import MongoClient
    
    client = MongoClient('mongodb://localhost:27017/')
    db = client['dbName']
    collection = db['collectionName']
    
  8. 索引:

    • 使用 createIndex 创建索引,提高查询性能。
    db.collection.createIndex({ field: 1 })
    
  9. 删除:

    • 使用 removedeleteManydeleteOne 删除文档。
    db.collection.remove({ field: value })
    
  10. 事务:

    • 使用 startTransactioncommitTransaction 等命令进行事务管理。
  11. 备份与恢复:

    • 使用 mongodumpmongorestore 命令进行数据库备份和恢复。

HBase:

  1. 查询:

    • 使用带有过滤器的 scan 命令进行数据扫描。
    Scan scan = new Scan();
    scan.setFilter(new SingleColumnValueFilter(Bytes.toBytes("family"), Bytes.toBytes("qualifier"), CompareOperator.EQUAL, Bytes.toBytes("value")));
    
  2. Python编程:

    • 使用 HappyBase 库在 Python 中创建表格和获取表格名称。
    import happybase
    
    connection = happybase.Connection('localhost')
    table = connection.table('tableName')
    
  3. 写入:

    • 使用 Put 命令将数据插入 HBase 表中。
    Put put = new Put(Bytes.toBytes("rowKey"));
    put.addColumn(Bytes.toBytes("family"), Bytes.toBytes("qualifier"), Bytes.toBytes("value"));
    
  4. 删除:

    • 使用 Delete 命令删除表中的数据。
    Delete delete = new Delete(Bytes.toBytes("rowKey"));
    delete.addColumn(Bytes.toBytes("family"), Bytes.toBytes("qualifier"));
    
  5. 版本控制:

    • HBase支持多版本数据,可以通过时间戳来检索不同版本的数据。
  6. 列簇:

    • 表可以包含多个列簇,用于组织和存储相关的列。
  7. 过滤器:

    • 使用过滤器可以在扫描表时限制返回的结果,提高检索效率。

这是一个基本的填充,如果有进一步的问题或需要详细的解答,请随时告诉我。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/260586.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

云存储在 AIOps、数字人以及训练推理场景的最佳实践

云布道师 在以 AIGC 大模型为代表的技术新浪潮中&#xff0c;存储作为数据基础设施&#xff0c;将在数据采集、训练与推理、应用部署、内容审核与协同等多个关键环节发挥重要作用&#xff0c;助力 AI 创新加速。据 IDC 调研显示&#xff0c;67% 的中国企业已经开始探索 AIGC 在…

【PIE-Engine 数据资源】全球2.5分分辨率累积降水量数据集

文章目录 一、 简介二、描述三、波段四、示例代码参考资料 一、 简介 数据名称全球2.5分分辨率累积降水量数据集时间范围1961年- 2018年空间范围全球数据来源worldclim代码片段var images pie.lmageCollection(WORLDCLIME/GLOBAL_PREC_MONTH") 二、描述 全球2.5分分率果…

Linux笔记---用户和权限管理基本命令介绍

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Linux学习 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 ​编辑 前言&#xff1a; 命令&#xff1a; whoami&#xff1a; passwd&#xff1a; useradd&#xff1a; userdel&#xff1a; chm…

直升机产权共享,让飞行成为触手可及的梦想!

你曾想过能开直升机&#xff1f;甚至想拥有一架直升机&#xff1f;那种飞跃人生的心境&#xff0c;翱翔蓝天白云。可面临居多疑问&#xff0c;比如&#xff1a;学开直升机需要怎样的条件&#xff08;年龄、学历、费用、学习内容及周期等&#xff09;?到哪里学/买直升机比较安全…

【C语言】自定义类型之联合和枚举

目录 1. 前言2. 联合体2.1 联合体类型的声明2.2 联合体的特点2.3 相同成员的结构体和联合体对比2.4 联合体大小的计算2.4 判断当前机器的大小端 3. 枚举3.1 枚举类型的声明3.2 枚举类型的优点3.3 枚举类型的使用 1. 前言 在之前的博客中介绍了自定义类型中的结构体&#xff0c;…

利用Spark构建房价分析与推荐系统:基于58同城数据的大数据实践

利用Spark构建房价分析与推荐系统&#xff1a;基于58同城数据的大数据实践 基于Spark的房价数据分析预测推荐系统引言技术栈功能概述项目实现1. 数据爬取与处理2. 大数据分析与可视化3. 房价预测模型4. 协同过滤推荐系统5. Web应用开发6. 数据管理与用户管理 总结与展望 基于Sp…

常见的Web攻击手段分析总结,实战案例:通过 X-Forwarded-Host 的密码重置令牌泄漏

常见的Web攻击手段分析总结,实战案例:通过 X-Forwarded-Host 的密码重置令牌泄漏。 常见的 Web 攻击手段主要有 XSS 攻击、CSRF 攻击、SQL 注入攻击、DDos 攻击、文件漏洞攻击等。这几种攻击方式的防护手段并不复杂,却还是有很多企业遭受了该攻击,朔源到头,还是因为人为的…

【实时绘画】krita + comfyUI 实时绘画 儿童海报

1&#xff1a;打开comfyUI 2: 打开krita 打开 cd custom_nodes 输入命令 安装控件 git clone https://github.com/Acly/comfyui-tooling-nodes.git

Gamma分布

分布的概率密度为&#xff1a; 其中参数 分布的数学期望等于&#xff0c;方差等于。

java:用ClassLoader将文件转化为输入流

代码示例&#xff1a; package com.thb;import java.io.IOException; import java.io.InputStream;public class Demo4 {public static void main(String[] args) throws IOException {String resource "com/thb/test.properties";// 获得ClassLoaderClassLoader c…

大数据HCIE成神之路之数据预处理(3)——数值离散化

数值离散化 1.1 无监督连续变量的离散化 – 聚类划分1.1.1 实验任务1.1.1.1 实验背景1.1.1.2 实验目标1.1.1.3 实验数据解析 1.1.2 实验思路1.1.3 实验操作步骤1.1.4 结果验证 1.2 无监督连续变量的离散化 – 等宽划分1.2.1 实验任务1.2.1.1 实验背景1.2.1.2 实验目标1.2.1.3 实…

用户管理第2节课-idea 2023.2 后端--删除表,从零开始

一、鱼皮清空model文件夹下 二、鱼皮清空mapper文件夹下 三、删除 test 测试类下的部分代码 3.1删除SampleTest 3.2删除部分代码 UserCenterApplicationTests

自动化测试|Eolink Apikit 如何保存、使用测试用例

测试用例是测试过程中很重要的一类文档&#xff0c;它是测试工作的核心&#xff0c;是一组在测试时输入和输出的标准&#xff0c;是软件需求的具体对照。 测试用例可以帮助测试人员理清测试思路&#xff0c;确保测试覆盖率&#xff0c;发现需求漏洞&#xff0c;提高软件质量&a…

VC++ MinGW编译器将图片、字体等资源文件编译进程序和使用

Mingw使用附带的windres.exe可以将资源文件编译成.o文件, 之后与其他目标文件一起g++.exe链接生成程序 为了方便,使用mingw编译器版本的codeblock编写程序 用位图资源作为例子,新建一个空项目,在项目下新建一个资源文件,resource.rc,一个cpp文件main.cpp,一个头文件reso…

YOLOv8轻量化模型:模型轻量化创新 | MobileNetV3结合轻量级MLCA模块

💡💡💡本文解决什么问题:MobileNetV3结合轻量级的 Mixed Local Channel Attention (MLCA) 模块,实现轻量化 1.MLCA原理介绍 论文:https://www.sciencedirect.com/science/article/abs/pii/S0952197623006267 摘要:本项目介绍了一种轻量级的 Mixed Local Channel At…

IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -SpringMVC搭建框架

第一章 初识SpringMVC 1.1 SpringMVC概述 SpringMVC是Spring子框架 SpringMVC是Spring 为**【展现层|表示层|表述层|控制层】**提供的基于 MVC 设计理念的优秀的 Web 框架&#xff0c;是目前最主流的MVC 框架。 SpringMVC是非侵入式&#xff1a;可以使用注解让普通java对象&…

2万字揭秘阿里巴巴数据治理平台建设经验(上),附推荐系统完整源码

原文链接 https://mp.weixin.qq.com/s?__bizMjM5MjA0OTYwNQ&mid2247484210&idx1&sn5ceffbba79553219b792e2fcfb9c6789&chksma6ad739891dafa8eeabcde82ed24f04d9ffbbb837137fe7c1c72b38c986b38aa83f0c593e02a&token909431872&langzh_CN#rd 本文从七个…

Qt之判断一个点是否在多边形内部(射线法)

算法思想: 以被测点Q为端点,向任意方向作射线(一般水平向右作射线),统计该射线与多边形的交点数。如果为奇数,Q在多边形内;如果为偶数,Q在多边形外。计数的时候会有一些特殊情况。这种方法适用于任意多边形,不需要考虑精度误差和多边形点给出的顺序,时间复杂度为O(n)…

C# NPOI导出datatable----Excel模板画图表

1、创建Excel模板 2、安装NPOI管理包 3、创建工作簿 &#xff08;XLSX和XLS步骤一样&#xff0c;以XLS为例&#xff09; IWorkbook workbook null; string time DateTime.Now.ToString("yyyyMMddHHmmss"); string excelTempPath Application.StartupPath "…

VScode安装C/C++编译器步骤

一、安装C/C插件 二、安装 MinGW-w64 工具链 使用国内源 git clone https://gitee.com/cuihongxi/ubuntu2-mac.git 下载后进入到VScode文件夹下&#xff0c;点击msys2-x86_64-20231026.exe进行安装 完成后&#xff0c;确保选中“立即运行 MSYS2”框&#xff0c;然后选择“完…