小编Rom*_*Die的帖子

蜂巢中分区和分区的结构差异

我创建了两个表:

1)一个用于分区的分区
2)只有分层表

我知道hive中分区和分区的概念.但我有点困惑,因为我已经读过'partition creates directory and bucketing creates files'.我同意第一部分,因为我可以在HDFS Hive Warehouse中看到,但ONLY除了我加载到表中的数据文件之外,我无法在HDFS中看到任何用于bucketing表的文件.那么ONLYbucketing表的文件在哪里?我能够在分区目录下看到的文件是一个喜欢的文件,eg: 00000_0但是这个文件可以用于分区表但是另一个bucketed表呢?
下面是我创建表的代码:

CREATE TABLE Employee(
ID BIGINT,
NAME STRING, 
SALARY BIGINT,
COUNTRY STRING 
)
CLUSTERED BY(ID) INTO 5 BUCKETS
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE;  
Run Code Online (Sandbox Code Playgroud)

负载数据代码如下:

load data local inpath '/home/cloudera/Desktop/SampleData.txt' into table employee;  
Run Code Online (Sandbox Code Playgroud)

我已经读过,当我们创建表时会创建存储桶.如果我遗漏了某些内容或出错了,请更正我.有人请帮忙吗?

hadoop hive hdfs cloudera hortonworks-data-platform

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

在 pyspark 中将时间戳转换为纪元毫秒

我有一个如下所示的数据集:

纪元秒数 等值时间
1636663343887 2021-11-12 02:12:23

现在,我试图将 转换eq_timeepoch秒,它应该与第一列的值匹配,但我无法这样做。下面是我的代码:

df = spark.sql("select '1636663343887' as epoch_seconds")
df1 = df.withColumn("eq_time", from_unixtime(col("epoch_seconds") / 1000))

df2 = df1.withColumn("epoch_sec", unix_timestamp(df1.eq_time))
df2.show(truncate=False)   
Run Code Online (Sandbox Code Playgroud)

我得到如下输出:

纪元秒数 等值时间 纪元秒
1636663343887 2021-11-12 02:12:23 1636663343

也尝试过这个链接,但没有帮助。我的expected输出是第一列和第三列应该相互匹配。

PS:我Spark 3.1.1在本地使用该版本,而它是Spark 2.4.3在生产中,我的最终目标是在生产中运行它。

python apache-spark apache-spark-sql pyspark

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

从列表中指定重复值列

假设我有一个数据列表.对于eg [1,2,3,4,5]和我有1704我的数据帧行.现在我想添加只有这个值的新列,但应该重复到最后一行,如下所示:

1  
2  
3  
4  
5  
1  
2  
3  
4  
5  
..  
Run Code Online (Sandbox Code Playgroud)

等到最后一个记录.我试过df['New Column']=pd.Series([1,2,3,4,5])但它只在前5行中插入记录,但我希望这个系列重复到最后一行.我在SO上提到了很多帖子,但没有找到任何相关的帖子.我是pandas框架的新手.请帮我解决一下这个.提前致谢.

python list repeat pandas

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

如何在过去一个月的第一个星期一之前选择星期日

我想在通过月份的第一天Sunday 之前选择Monday.

Sunday可能是在同一个月或上个月,但我想要的日期Sunday.我尝试了下面的逻辑获取Sunday,它适用于当前月份,但如果我尝试再过一个月,Nov-2017那么我必须MONDAY-2改为MONDAY-3.所以这不是正确的方法.那我该怎么做呢?

Calendar c = Calendar.getInstance();

c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.println("Date " + c.getTime());
c.set(Calendar.DAY_OF_MONTH, Calendar.MONDAY - 2);
System.out.println("Date " + c.getTime());
Run Code Online (Sandbox Code Playgroud)

我想将日期传递给代码.那我该怎么办呢?就像我将日期保存在变量中然后根据该变量提供的输入,它应该计算逻辑并提供输出

java date

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

方法返回单位而不是 scala 中的字符串

我正在尝试从 Scala 中的类型中获取字符串Set。但是,无论我尝试什么,它都会Unit作为返回类型而不是string.

if (!validationMessages.isEmpty) {
      dataTuple = (parsedJson.toString(), for (s <- validationMessages.toString()){
        s.toString()
      })
      println(dataTuple)
    }
    else {
      dataTuple = (parsedJson.toString(), "some string...")
    }  
Run Code Online (Sandbox Code Playgroud)

基本上,我试图返回一个像(String, String). 我缺少什么?

scala

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