hive、hadoop面试题

hive、hadoop面试题有如下hive记录表records,记录车辆的过车信息:createtablerecords(idstring,//记录编号indatestring,//过车记录时间plate_nostring,//车辆号牌device_idint,//经过的设备编号)partitionedby(monthstring,daystring)rowformatdelimitedfieldsterminatedby’\t’storedasORC;1…

大家好,又见面了,我是你们的朋友全栈君。

有如下hive记录表records,记录车辆的过车信息:
create table records(
  id string, //记录编号
  indate string, //过车记录时间
  plate_no string, //车辆号牌
  device_id int, //经过的设备编号
)
partitioned by(month string,day string)
row format delimited fields terminated by ‘\t’ stored as ORC;

1请使用HQL得到最近一个月内晚上(晚22点-早6点)出现记录最多的车辆号牌Top10及次数
select
  plate_no,
  rank() over(sort by total desc) rk,
  total
from
  (
   select
   plate_no,
   count(1) total
   from
    (
     select
     indate,
     plate_no
     from
     records
     where
     From_unixtime(unix_timestamp(indate,”yyyy-MM-dd HH:mm:ss”),”yyyy-MM-dd”)>=date_sub(‘2020-04-26’,30)
     and
     From_unixtime(unix_timestamp(indate,”yyyy-MM-dd HH:mm:ss”),”yyyy-MM-dd”) <=’2020-04-26′
     and
     From_unixtime(unix_timestamp(indate,”yyyy-MM-dd HH:mm:ss”),”HH”) <=22
     and
     From_unixtime(unix_timestamp(indate,”yyyy-MM-dd HH:mm:ss”),”HH”) >=6
    )  t1
   group by plate_no
  ) t2
 where rk = 10

2请用spark RDD将上述表中indate、plate_no、device_id三个字段记录重复的数据只保留一条
object interview02 {

  def main(args: Array[String]): Unit = {

    val session: SparkSession = SparkSession.builder().master(“local[*]”).appName(“interview”).getOrCreate()
    val rdd: RDD[Row] = session.read.csv(“records”).rdd

    val distinct = rdd.map(row => ((“indate”,”plate_no”,”device_id”),(“id”)))
      .groupByKey()
    distinct.distinct().foreach(println)
    session.stop()
    }

}

3有string A和string B,分别由4096个随机的0或1组成,样例为String A = “01010111001….110010”,String B=”10101110….100101″,
现有公式double C=(A和B逐位与的和)/(A中1的个数*B中1的个数),请用自己熟悉的语言实现出满足此公式的方法。
public class Method {

    public static void main(String[] args) {

       

 String A = "0101010101101010";
        String B = "1010101010101011";

        char[] chars1 = A.toCharArray();
        char[] chars2 = B.toCharArray();
        int sum;
        Double sum2 = 0.0;
        int c = 0;
        int d = 0;
        for (int i = 0; i < chars1.length; i++) {
            char a = chars1[i];

//            for (int j= 0;j< chars2.length;j++){
            char b = chars2[i];


            sum = Integer.parseInt(String.valueOf(a)) & Integer.parseInt(String.valueOf(b));
            /* System.out.println(sum); */
            sum2 += sum;
        }
        for (int j = 0; j < chars1.length; j++) {
            char a = chars1[j];

            char b = chars2[j];
            if (Integer.parseInt(String.valueOf(a)) == 1) {

                c += 1;


            }
            if (Integer.parseInt(String.valueOf(b)) == 1) {

                d += 1;


            }



        }
        Double C = sum2/(c*d);
        System.out.println(sum2);
        System.out.println(c);
        System.out.println(d);
        System.out.println(C);

    }
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149946.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • hadoop菜鸟教程 Hadoop学习资料(云计算学习电子书)

    hadoop菜鸟教程 Hadoop学习资料(云计算学习电子书)hadoop与大数据的关系?大数据技术正渗透到各行各业。作为数据分布式处理系统的典型代表,Hadoop已成为该领域的事实标准。但Hadoop并不等于大数据。它只是一个成功的分布式系统,用于处理离线数据。大数据领域中还有许多其他类型的处理系统。随着大数据技术的普及,Hadoop已成为其开源功能和卓越性能的新宠。有些人甚至认为大数据是Hadoop。实际上,这是一种误解。Hadoop只是一个用于处…

    2022年4月29日
    32
  • pycharm如何设置快捷键「建议收藏」

    pycharm如何设置快捷键「建议收藏」pycharm中默认ctrl+d是复制一行,这和jupyter完全不一样,我比较喜欢的是:ctrl+d:删除一行ctrl+c:复制一行所以想要将pycharm进行修改。我们以ctrl+d:删除一行为例。找到如下:点击那一行。然后弹出如下对话框:我们不需要删除,直接按快捷键ctrl+d,自动更换为ctrl+d。此时会说和其他快捷键冲突了,没事,删除其他快捷键即可,那些都是一些不常用的。然后,我们可以删除以前的那个快捷键。完成…

    2022年8月29日
    1
  • (精华)2020年6月28日 JavaScript高级篇 设计模式-发布订阅模式

    (精华)2020年6月28日 JavaScript高级篇 设计模式-发布订阅模式//发布订阅对象vareventObj={//缓存列表,存放订阅者的信息list:{},//添加订阅listen:function(key,fn){if(!this.list[key]){this.list[key]=[];}typeoffn===’function’&&this.list[key].push(fn);},//发布信息

    2022年8月20日
    4
  • 产品经理面试内容_产品专员简历

    产品经理面试内容_产品专员简历前言经过深思熟路后,本渣决定参加放弃研发转投产品了。本科,硕士所学的东西也不能说可惜,这些都会帮助我在产品岗位更进一步。那么在研究与学习之下,我来研究一下产品经理的简历如何投能不当炮灰。(现在写好加深一下印象,也方便一下一年后写简历参加秋招的小周。)思路:PM的面试简历,就是一份产品产品用户:HR,业务主管简历被HR的阅读时间很短,15S左右,且较为粗略。所以就需要满足d…

    2025年7月11日
    1
  • python for循环多个参数处理_python for循环嵌套

    python for循环多个参数处理_python for循环嵌套实际上,“使用for循环遍历数组的最简单方法”(Python类型被命名为“list”BTW)是第二种方法,即foriteminsomelist:do_something_with(item)哪个FWIW适用于所有iterable(列表、元组、集合、dict、迭代器、生成器等)。基于范围的C风格版本被认为是非常不通俗的,并且只适用于列表或类似列表的iterable。WhatIwouldl…

    2022年8月12日
    4
  • PAT_A1137#Final Grading

    PAT_A1137#Final Grading

    2021年7月7日
    115

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号