我创建了两个表:
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)
我已经读过,当我们创建表时会创建存储桶.如果我遗漏了某些内容或出错了,请更正我.有人请帮忙吗?
我有一个如下所示的数据集:
| 纪元秒数 | 等值时间 |
|---|---|
| 1636663343887 | 2021-11-12 02:12:23 |
现在,我试图将 转换eq_time为epoch秒,它应该与第一列的值匹配,但我无法这样做。下面是我的代码:
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在生产中,我的最终目标是在生产中运行它。
假设我有一个数据列表.对于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框架的新手.请帮我解决一下这个.提前致谢.
我想在通过月份的第一天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)
我想将日期传递给代码.那我该怎么办呢?就像我将日期保存在变量中然后根据该变量提供的输入,它应该计算逻辑并提供输出
我正在尝试从 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). 我缺少什么?