精华内容
下载资源
问答
  • 易语言 文本的创建追加

    千次阅读 2018-08-13 10:40:30
    在易语言中创建文本的命令,就是:写到文件(),要追加文本,思路上就是先把文件中的数据读入变量,再把要追加的文本加在变量中,一起写到文件就是了。 具体的代码如下: 注:原贴地址来源于精易论坛,如有不妥...

    文本的创建和追加 就是往一个文本写内容

    文件格式常用为:*.txt,*.csv

    在易语言中创建文本的命令,就是:写到文件(),要追加文本,思路上就是先把文件中的数据读入变量,再把要追加的文本加在变量中,一起写到文件就是了。

    具体的代码如下:

    注:原贴地址来源于精易论坛,如有不妥,请删贴处理。

    原贴地址:https://bbs.125.la/forum.php?mod=viewthread&tid=14153349

     

    展开全文
  • hive内部表外部表的创建及load数据

    千次阅读 2019-04-10 18:03:55
    创建hive内部表 create table test_01(id bigint, name string ) row format delimited fields terminated by ','; 默认记录和字段分隔符: \n 每行一条记录 ^A 分隔列(八进制 \001) ^B 分隔ARRAY或者STRUCT中...

    内部表

    创建hive内部表
    create table test_01(id bigint, name string ) row format delimited fields terminated by ',';
    默认记录和字段分隔符:
     
    \n   每行一条记录
     
    ^A    分隔列(八进制 \001)
     
    ^B    分隔ARRAY或者STRUCT中的元素,或者MAP中多个键值对之间分隔(八进制 \002)
     
    ^C    分隔MAP中键值对的“键”和“值”(八进制 \003)
     
     
     
    自定义分隔符:
     
    CREATE TABLE test(
     
        ……
     
    )
     
    ROW FORMAT DELIMITED
     
    FIELDS TERMINATED BY '\001'
     
    COLLECTION ITEMS TERMINATED BY '\002'
     
    MAP KEYS TERMINATED BY '\003'
     
    LINES TERMINATED BY '\n'
    创建测试数据文件
    vi test_01;
     
    1,test1
    2,test2
    3,test3
    4,test4
    5,test5
    6,test6
    7,test7
    将数据文件上传到hdfs并加载到hive,发现hdfs中的文件会被移动到hive表目录,而不是拷贝
    hdfs dfs -put test_01 /test
    load data inpath '/test/test_01' into table test_01;
    再次上传并加载,会追加数据到hive表中,并且hive目录存在test_01和test_01_copy_1两个文件
    hdfs dfs -put test_01 /test
    load data inpath '/test/test_01' into table test_01;
    再次上传并使用overwrite加载,原先的test_01/test_01_copy_1两个文件会先被删除,新文件test_02被移动到hive表目录中
    hdfs dfs -put test_01 /test/test_02
    load data inpath '/test/test_02' overwrite into table test_01;
    删除表后目录文件及meta数据都会被删除
    drop table test_01;
    外部表

    创建hive外部表,如果指定location 'xxx'会在hdfs中创建对应目录并将load的文件移动至该目录下,否则会在hive表下创建test_02目录并装载文件
    create EXTERNAL table test_02(id bigint, name string) row format delimited fields terminated by ',';
    将数据文件上传到hdfs并加载到hive
    hdfs dfs -put test_01 /test
    load data inpath '/test/test_01' into table test_02;
    删除表后目录及文件依然存在,只会删除test_02的meta数据,再次创建表即可查询历史数据
    drop table test_02;
    --------------------- 
    作者:白开水v5 
    来源:CSDN 
    原文:https://blog.csdn.net/xiongbingcool/article/details/82982099 
    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • Hive HQL数据操作、数据查询

    千次阅读 2017-05-08 14:21:05
    一、HQL 数据操作1.装载数据LOAD DATA INPATH '/user/hadoop/o' INTO TABLE test;如果test表是一个分区表,则在HQL中指定区分:LOAD DATA INPATH '/USER/HADOOP/O' OVERWRITE INTO TABLE test3 PARTITION(part="a");...

    一、HQL 数据操作


    本方内容来源《Hadoop海量数据处理技术详解与项目实战》人民邮电出版社
    建库建表等参考这里
    http://blog.csdn.net/xundh/article/details/71404376#t4

    1.装载数据

    LOAD DATA INPATH '/user/hadoop/o' INTO TABLE test;

    如果test表是一个分区表,则在HQL中指定区分:

    LOAD DATA INPATH '/USER/HADOOP/O' OVERWRITE INTO TABLE test3 PARTITION(part="a");

    从本地直接加载数据表表中

    LOAD DATA LOCAL INPATH '/HOME/HADOOP/O' INTO TABLE test;

    Hive在加载数据时不会对数据格式进行任何的验证,需要用户自己保证数据格式与表定义的格式一致。

    2.通过查询语句向表中插入数据

    INSERT OVERWRITE TABLE test SELECT * FROM source;

    同样,当test是分区表时,必须指定分区

    INSERT OVERWRITE TABLE test PARTITION (part='a') SELECT id,name FROM source;
    

    Hive0.7以后开始支持INSERT INTO,追加的方式。

    通过一次查询,产生多个不相交的输出

    FROM source
    INSERT OVERWRITE TABLE test PARTITION (part='a')
    SELECT id,name WHERE id>=0 AND id<100
    INSERT OVERWRITE TABLE test PARTITION (part='b')
    SELECT id,name WHERE id>=100 AND id<200
    ...

    这样只通过一次对source表的查询,就将符合条件的数据插入test表的各个分区。要使用这个特性,FROM子句要写在前面。

    3.利用动态分区向表中插入数据

    支持基于查询参数自动推断出需要创建的分区

    INSERT OVERWRITE TABLE test PARTITION(time) SELECT id,modify_time FROM source;

    Hive 会根据SELECT语句中的最后一个查询字段作为动态分区的依据,而不是根据字段名来选择。如果指定了n 个动态分区的字段,Hive会将select语句中最后n个字段作为动态分区的依据。
    上述语句,Hive会根据modify_time不同的值创建分区。
    Hive默认没有开启动态分区,开启语句:

    set hive.exec.dynamic.partition=true;
    set hive.exec.dynamic.partition.mode=nostrict; 允许所有分区都是动态的
    
    • hive.exec.max.dynamic.partitions.pernode 每个Mapper或Reducer可以创建的最大分区数
    • hive.exec.max.dynamic.partitions 一条动态分区创建语句能够创建的最大分区数
    • hive.exec.max.created.files 一个MapReduce作业能够创建的最大文件数

    4.通过CTAS加载数据

    CREATE TABLE test AS SELECT id,name FROM source;

    5.导出数据

    INSERT OVERWRITE DIRECTORY '/user/hadoop/r' SELECT * FROM test;
    INSERT OVERWRITE LOCAL DIRECTORY '/home/hadoop/r' SELECT * FROM test;

    如果Hive表中的数据正好满足用户需要的数据格式,可以直接复制

    hadoop dfs -cp /user/hive/warehouse/source_table /user/hadoop/

    6.删除分区

    ALTER TABLE shphonefeature DROP IF EXISTS PARTITION(year = 2015, month = 10, day = 1);删除掉指定分区

    二、数据查询

    1.SELECT

    SELECT col1,col2 FROM table;
    SELECT t.col1 c1,t.col2 c2 FROM table t;

    2.嵌套查询

    SELECT l.name,r.course FROM (SELECT id,name FROM left) l JOIN (select id ,course FROM right) r ON l.id=r.id;

    3.正则表达式选择列

    SELECT 'user.*' FROM test; 如列:user.name,user.age将被返回

    4.限制数量

    SELECT * FROM test LIMIT 100;

    5.需要对某列值处理

    SELECT id,name,sex,
    CASE
     WHEN sex='M' THEN '男'
     WHEN sex='F' THEN '女'
     ELSE '无效数据'
    END
    FROM student;

    6.条件限制

    支持常见的=、<>,!=,A IS NULL,A [NOT] LIKE B,A RLIKE B,A REGEXP B等

    SELECT * FROM student WHERE age=18;

    7.分组、聚合

    SELECT COUNT(*) FROM student GROUP BY age;
    SELECT AVG(age) FROM student GROUP BY classId;
    SELECT name,AVG(age) FROM student where sex='F' GROUP BY classId HAVING AVG(age)>18;

    8.JOIN

    INNER JOIN内连接
    LEFt/RIGHT OUTER JOIN/右外连接
    FULL OUTER JOIN 全外连接
    LEFT-SEMI JOIN 左半连接
    map-side  JOIN map阶段,将小表读到内存中去,直接在mapjoin。用户可以通过设置hive.auto.convert.join=true来开启自动优化,通过hive.mapjoin.smalltable.filesize来定义小表的大小,默认为25000000字节。
    多表JOIN

    9.ORDER BY和 SORT BY

    当reducer的个数为1时,两者相同。
    当reducer个数不止一个时,输出结果会有重合。SORT BY是控制每个reducer内的排序。

    10.DISTRIBUTE BY和SORT BY

    DISTRIBUTE BY可以控制某些数据进入同一个Reducer,这样经过SORT BY以后,可以得到全局排序的结果。
    SELECT col1,col2 FROM ss DISTRIBUTE BY col1 SORT BY col1,col2;

    11.CLUSTER BY

    如果在使用DISTRIBUTE BY 和SORT BY语句时,DISTRIBUTE BY和SORT BY涉及的列完全相同,并且采用升序排列,可以使用CLSTER BY代替DISTRIBUTE BY和SORT BY

    12.分桶和抽样

    有时候需要对数据进行抽样,Hive提供了对表分桶抽样

    SELECT * FROM  test TABLESAMPLE(BUCKET 3 OUT OF 10 ON id);

    对于BUCKET x OUT OF y ON z,其中y表示y个桶,x表示取第x个桶,z表示分桶的依据是将z列的哈希值散列再除以y的余数。如果不指定z,可以采取随机列抽样的方式。

    SELECT * FROM test TABLESAMPLE(BUCKET 3 OUT OF 10 ON RAND());

    在建表时,可以指定为分桶表,那在抽样会更加高效

    set hive.enforce.bucketing=true;
    CREATE TABLE buckettable (id INT) CLUSTERED BY (id) INTO 4 BUCKETS;

    该表将被划分为4个桶,然后执行INSERT语句

    INSET OVERWRITE TABLE buckettable SELECT * FROM source;

    数据将被划分为4个文件存放在表路径下,每个文件代表一个桶。

    13.UNION ALL

    SELECT r.id,r.price
    FROM(
     SELECT m.id,m.price FROM monday m
    UNION ALL
     SELECT t.id,t.price FROM tuesday t)r

    Hive不支持直接UNION ALL,必须进行嵌套查询。

    展开全文
  • 今年暑假系里给每个同学布置了一篇学年论文,恰好我选的题目是人民汇率的变动对我国物价水平波动的影响,就想着怎么也得弄点数据撑撑排面吧,一开始我是不想爬的,然后就在网上各种找接口,找了半天,不是不能用就是...

    文章导语

    今年暑假系里给每个同学布置了一篇学年论文,就想着怎么也得弄点数据撑撑排面吧,一开始我是不想爬的,然后就在网上各种找接口,找了半天,不是不能用就是获取的数据只是实时的,无法获得历史数据,哎,既然没办法,就只能爬了,顺便就在一个群里问了一下端口的事,然后开始准备工作,等网页分析完了,开始敲代码的时候,又看了一下手机,有个道友说tushare里面有接口,虽然tushare用了也挺多次吧,但是没发现有汇率的接口啊,我又抱着希望去看了看,果不其然,还真有。但是回头一想,网页都分析完了,干脆写完得了。二话不说,写吧!

    实现过程

    #! /usr/bin/env/ python
    # -*- coding:UTF-8 -*-
    # Author: Zhu Huaren
    
    import requests
    from lxml import etree
    import time
    import xlrd
    from xlutils.copy import copy
    
    proxy = {
        'HTTP': 'HTTP://180.125.70.78:9999',
        'HTTP': 'HTTP://117.90.4.230:9999',
        'HTTP': 'HTTP://111.77.196.229:9999',
        'HTTP': 'HTTP://111.177.183.57:9999',
        'HTTP': 'HTTP://123.55.98.146:9999',
            }
    row = 0
    for n in range(1,50):  #  抓取页码范围
        form_data = {
            'erectDate': '2009-07-01',
            'nothing': '2019-07-08',
            'pjname': '1316',  # 美元兑人民币代码,修改此代码可获得其他货币兑人民币汇率
            'page': n,
        }
        url = 'http://srh.bankofchina.com/search/whpj/search.jsp'
        res = requests.post(url=url, data=form_data,proxies=proxy)
        html = etree.HTML(res.text)
    
        for j in range(2, 22):
            m_n = html.xpath('//tr[{}]/td[1]/text()'.format(j))
            s_e_p = html.xpath('//tr[{}]/td[2]/text()'.format(j))
            c_p = html.xpath('//tr[{}]/td[3]/text()'.format(j))
            s_e_sp = html.xpath('//tr[{}]/td[4]/text()'.format(j))
            c_s = html.xpath('//tr[{}]/td[5]/text()'.format(j))
            bank_count_p = html.xpath('//tr[{}]/td[6]/text()'.format(j))
            date = html.xpath('//tr[{}]/td[7]/text()'.format(j))
            row = row + 1
            workbook = xlrd.open_workbook('money.xls')  # 创建工作表
            workbook_copy = copy(workbook)  # 向工作表内追加内容
            worksheet = workbook_copy.get_sheet(0)
            worksheet.write(0, 0, '货币名称')
            worksheet.write(0, 1, '现汇买入价')
            worksheet.write(0, 2, '现钞买入价')
            worksheet.write(0, 3, '现汇卖出价')
            worksheet.write(0, 4, '现钞卖出价')
            worksheet.write(0, 5, '中行折算价')
            worksheet.write(0, 6, '发布时间')
            worksheet.write(row, 0, ''.join(m_n))  # 将列表格式转换为字符串
            worksheet.write(row, 1, ''.join(s_e_p))
            worksheet.write(row, 2, ''.join(c_p))
            worksheet.write(row, 3, ''.join(s_e_sp))
            worksheet.write(row, 4, ''.join(c_s))
            worksheet.write(row, 5, ''.join(bank_count_p))
            worksheet.write(row, 6, ''.join(date))
            workbook_copy.save('money.xls')
        print('第{}页爬取完成...'.format(n))
    time.sleep(1)
    

    获取数据的界面
    在这里插入图片描述

    获取的数据,我就先爬了1000多条,等用的时候再爬吧。
    在这里插入图片描述

    文章结语

    最后我再说说我踩的坑吧,第一个就是在网页开发工具上复制的xpath路径竟然不能直接用,比如说这个把,复制xpath路径的时候,它会自动优化,把一些网页源码没有的节点自动补齐,当你用这个路径提取内容的时候肯定提取不出来。还有一个就是追加写入Excel,这个就不多说了吧。
    总结下来一句话:
    只有当你踩的坑多了,你才有机会踩下一个坑,否则你连下一个坑都见不到。

    展开全文
  • Flume 是分布式的日志收集系统,可以处理各种类型各种格式的日志数据,包括avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy、自定义等,本节课主要讲解 Flume 的...
  • 如果视图只来源于一张表,可以直接对视图进行update操作; 创建视图: CREATE OR REPLACE VIEW v_payment_info_status AS SELECT * from t_payment_info_status ;//支付状态表 视图创建成功后可以通过:SELECT ...
  • Hive开发要知道数据仓库的四个层次设计

    万次阅读 多人点赞 2018-02-12 18:11:09
    数据仓库:数据仓库全面接收源系统数据,ETL进程对数据进行规范化、验证、清洗,并最终装载进入数据集市,通过数据集市支持系统进行数据查询、分析,整个数据仓库包含四大层次。 1.数据仓库的四个操作  ETL...
  • Android手机内存本来就不大,要是老把数据放在手机里,很明显会让手机的使用者体验到什么是“卡”,所以,我们把数据要放到SD卡中,以减少手机内存的使用,本文仅写入文件,不对读文件进行说明。好,Go! 第一步:...
  • 使用TSQL查询和更新 JSON 数据

    千次阅读 2017-01-07 08:47:54
    JSON是一个非常流行的,用于数据交换的文本数据(textual data)格式,主要用于Web和移动应用程序中。JSON 使用“键/值对”(Key:Value pair)存储数据,能够表示嵌套键值对和数组两种复杂数据类型,JSON仅仅使用...
  • 从 MySQL 5.7.8 开始,MySQL 支持原生的 JSON 数据类型。 创建 JSON 类似 varchar,设置 JSON 主要将字段的 type 是 json, 不能设置长度,可以是 NULL&nbsp; 但不能有默认值。 mysql&gt; CREATE TABLE lnmp...
  • hadoop组件---数据仓库---hive简介

    千次阅读 2018-01-09 18:18:05
    Hive简介 ...Hive管理HDFS中存储的数据,并提供基于SQL的查询语言(由运行时引擎翻译成MapReduce作业)用以查询数据。 Hive 是一个基于 Hadoop 文件系统之上的数据仓库架构。它为数据仓库的管理提供了许...
  • RxJava 合并组合两个(或多个)Observable数据

    万次阅读 多人点赞 2016-09-02 17:16:16
    Merge在异步的世界经常会创建这样的场景,我们有多个来源但是只想有一个结果:多输入,单输出。RxJava的merge()方法将帮助你把两个甚至更多的Observables合并到他们发射的数据里。下图给出了把两个序列合并在一个...
  • java如何追加写入txt文件

    千次阅读 2017-06-27 10:24:53
    文章来源:http://www.cnblogs.com/wangcp-2014/p/5851986.htmljava中,对文件进行追加内容操作的三种方法import java.io.BufferedWriter; import java.io.FileOutputStream; import java.io.FileWriter; import ...
  • 创建完分区表后,可以向分区表中直接插入数据,而不用去管它这些数据放在哪个物理上的数据表中。接上篇文章,我们在创建好的分区表中插入几条数据:    从以上代码中可以看出,我们一共在数据表中插入了13...
  • 数据仓库

    千次阅读 2019-05-15 20:19:36
    数据仓库的基本概念什么是数据仓库数据仓库的特点面向主题的集成的不可更新的随时间不断变化的数据仓库与数据库的区别 什么是数据仓库   在企业所有级别的决策制定过程,数据仓库(Data Warehouse)可以提供所有...
  • 前言 近期在学习使用Hive(版本号0.13.1)的过程中,发现了一些坑,它们也许是Hive提倡的比关系数据库更加自由的体现(同一时候引来一些问题)...本文旨在列举我发现的3个通过查询语句向表中插入数据过程中的问题,...
  • 数据仓库建设

    万次阅读 2018-07-18 23:31:52
    1.数据仓库概要 1.1.数据仓库起因 ...但涉及到跨业务、多部门联合应用就会存在:①数据来源多样化,管理决策数据过于分散;②数据缺乏标准,难以整合;③数据口径不统一,可信度低;④缺乏数据管控...
  • 【项目】数据仓库概述

    千次阅读 2020-04-04 21:04:41
    【1】 数据仓库的基本概念 ...数据仓库本身并不“生产”任何数据,同时自身也不需要“消费”任何的数据,数据来源于外部,并且开放给外部应用,这也是为什么叫“仓库”,而不叫“工厂”的原因 【2】 ...
  • 干货 | 万字详解整个数据仓库设计体系

    千次阅读 多人点赞 2021-03-19 14:20:08
    数据仓库本身并不“生产”任何数据,同时自身也不需要“消费”任何的数据,数据来源于外部,并且开放给外部应用,这也是为什么叫“仓库”,而不叫“工厂”的原因。 基本特征: 数据仓库是面向主题的
  • 十九、数据整理(下) 作者:Chris Albon 译者:飞龙 协议:CC BY-NC-SA 4.0 连接和合并数据帧 # 导入模块 import pandas as pd from IPython.display import display from IPython.display import Image raw_...
  • 本文介绍了Facebook公司数据分析系统中的RCFile存储结构,该结构集行存储和列存储的优点于一身,在MapReduce环境下的大规模数据分析中扮演重要角色。 Facebook曾在2010 ICDE(IEEE International Conference on ...
  • 文章目录1、数据类型1.1、数值类型1.1.1、整型(整数类型)1.1.2、浮点型(小数类型)1.1.3、复数1.2、bool类型(布尔类型)1.3、字符串类型1.3.1、定义字符串1.3.2、字符串拼接符“+”1.3.3、字符串实现基于 UTF-8 ...
  • 从细分到多层下钻数据分析 细分是网站分析的基本方法,也是数据分析的基本思路。细分分析的过程是对整体数据进行层层拆分,然后找到影响整体的局部因素。 步骤1:全站流量按来源模块可细分为广告、SEM、SEO和直接...
  • 利用Python爬取国家水稻数据中心的品种数据 一.页面获取 python可以进行对网页的访问,主要用到requests,beautifulsoup4包。 首先新建一个page的py文件...def get_page(url, coding): # 创建一个函数,用来获取BS...
  • Android数据存储技术

    千次阅读 2013-08-01 22:04:43
    Android数据存储技术 数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1 使用SharedPreferences存储数据 2 文件存储数据 3 SQLite数据库存储数据 4 使用...
  • 测试人员不仅收集/维护现有来源数据,而且还生成大量测试数据,以确保其在实际使用中提供产品的质量繁荣。 因此,我们作为测试人员必须不断探索,学习和应用用于数据收集,生成,维护,自动化和全面数据管理的最...
  • 前言 本文介绍如何在Office 365中创建和使用栏。 正文 通过登录地址登录到Office 365的SharePoint Online站点中,我们可以在右上角的设置菜单中,进入网站内容; 找到我们要用来演示的列表,如下图: ...
  • 引言:Druid作为一款开源的实时大数据分析软件,最近几年快速风靡全球...Druid 是什么 Druid 单词来源于西方古罗马的神话人物,中文常常翻译成德鲁伊。  本问介绍的Druid 是一个分布式的支持实时分析的数据存储系...
  • 来源:http://www.ido321.com/1031.html 原文:Creating a Custom WordPress Registration Form Plugin 译文:创建一个定制的WordPress插件注册表单 译者:dwqs 开门见山,WordPress提供了一个自定义的注册表单...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,799
精华内容 9,919
关键字:

创建追加查询的数据来源