小编F.L*_*scu的帖子

如何将数据从一个HDFS复制到另一个HDFS?

我有两个HDFS设置,并希望将一些表从HDFS1复制(不迁移或移动)到HDFS2.如何将数据从一个HDFS复制到另一个HDFS?是否可以通过Sqoop或其他命令行?

hadoop bigdata hdfs sqoop

15
推荐指数
3
解决办法
8万
查看次数

选择满足hive条件的上一行

我有这样的产品数据

Product   Date            Sales   Availbility
    xyz      2017-12-31      724.5   6.0
    xyz      2018-01-07      362.25  7.0
    xyz      2018-01-14      281.75  7.0
    xyz      2018-01-21      442.75  7.0
    xyz      2018-01-28      442.75  6.0
    xyz      2018-02-04      402.5   7.0
    xyz      2018-02-11      201.25  3.0
    xyz      2018-02-18      120.75  0.0
    xyz      2018-02-25      40.25   0.0
    xyz      2018-03-11      201.25  0.0
    xyz      2018-03-18      483.0   5.0
    xyz      2018-03-25      322.0   7.0
    xyz      2018-04-01      241.5   7.0
    xyz      2018-04-08      281.75  7.0
    xyz      2018-04-15      523.25  7.0
    xyz      2018-04-22      241.5   7.0
    xyz      2018-04-29      362.25  7.0
Run Code Online (Sandbox Code Playgroud)

数据没有订购(一个小问题),我想要做的是,在可用性栏(第4栏)中我们有0,我想采取前3周(有完全可用性,即7)平均

如下所示:

xyz      2017-12-31      724.5   6.0     Null …
Run Code Online (Sandbox Code Playgroud)

hive lag moving-average window-functions

8
推荐指数
1
解决办法
120
查看次数

在Hive中使用带有表的所有列的named_struct函数.

在Hive中,您可以使用函数named_struct来创建键值对列表; 键通常是列名,值是相应列中的值.例如,

$hive> select id, named_struct('foo', name, 'address', address) as list from users;
id list
1  {'foo':'Alice', 'address':'Wonderland'}
2  {'foo':'Bob', 'address':'Portland'}
...
Run Code Online (Sandbox Code Playgroud)

但是,为了制作列表,我需要明确地编写每个列名.有没有办法避免使用其中任何一个named_struct或其他类似功能?

我希望能够写出类似的东西(假设users只有三列).

$hive> select id, named_struct(*) as list from users;
Run Code Online (Sandbox Code Playgroud)

hadoop hive

7
推荐指数
1
解决办法
5066
查看次数

Oracle:使用自动列表分区和范围子分区

我想使用分区方法将我的表分成两个维度:

  1. 第一个维度是键列表。该列表可以随着时间的推移而增长,如果键列表将被扩展,我不想需要 DBA 来添加分区。因此我想使用自动列表分区

  2. 第二个维度是日期列的每日范围。

这是我的例子,它给了我一个ORA-14179

CREATE TABLE PartitionedTable
( 
  id              number,
  PartitionKey    number,
  created         date
) 
PARTITION BY LIST (PartitionKey) AUTOMATIC
SUBPARTITION BY RANGE (created) INTERVAL (NUMTODSINTERVAL(1,'DAY'))
( PARTITION p_PartitionKey VALUES (1)
  ( SUBPARTITION p_created VALUES LESS THAN (TO_DATE('01-JAN-2000','dd-MON-yyyy'))
  )
);
Run Code Online (Sandbox Code Playgroud)

我使用的是Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

如果插入新键和新日期,是否可以选择如何以最少的工作量创建这个二维分区表?

oracle database-partitioning oracle12c

4
推荐指数
1
解决办法
3511
查看次数

使用clock_gettime(CLOCK_MONOTONIC)测量经过的时间

我必须在多个线程期间消耗测量时间。我必须得到这样的输出:

Starting Time | Thread Number

00000000000   |   1

00000000100   |   2

00000000200   |   3
Run Code Online (Sandbox Code Playgroud)

首先,我使用了 gettimeofday 但我看到有一些负数,然后我做了一些研究并了解到 gettimeofday 无法可靠地测量经过的时间。然后我决定使用clock_gettime(CLOCK_MONOTONIC)。

然而,有一个问题。当我用秒来测量时间时,我无法精确地测量时间。当我使用纳秒时, end.tv_nsec 变量的长度不能超过 9 位数字(因为它是一个长变量)。这意味着,当它必须移动到第 10 位时,它仍然保持在 9 位,并且实际上数字变小,导致经过的时间为负数。

这是我的代码:

long elapsedTime;
struct timespec end;
struct timespec start2;
//gettimeofday(&start2, NULL);
clock_gettime(CLOCK_MONOTONIC,&start2);

while(c <= totalCount)
{   
    if(strcmp(algorithm,"FCFS") == 0)
    {
        printf("In SErunner count=%d \n",count);
        if(count > 0)
        {
            printf("Count = %d \n",count);
        
            it = deQueue();
            c++;
            tid = it->tid;

            clock_gettime(CLOCK_MONOTONIC,&end);
            
            usleep( 1000*(it->value));
            elapsedTime = ( end.tv_sec - start2.tv_sec);
            
            printf("Process of thread …
Run Code Online (Sandbox Code Playgroud)

c linux pthreads clock

0
推荐指数
1
解决办法
4614
查看次数