Hiveql中是否有一个等效于TS(右()或左()函数的函数?例如,RIGHT(col1,10)从col1获取前10个字符.
谢谢
是否可以执行以下操作:
我有一个看起来像这样的表:
declare @tran_TABLE TABLE(
EOMONTH DATE,
AccountNumber INT,
CLASSIFICATION_NAME VARCHAR(50),
Value Float
)
INSERT INTO @tran_TABLE VALUES('2018-11-30','123','cat1',10)
INSERT INTO @tran_TABLE VALUES('2018-11-30','123','cat1',15)
INSERT INTO @tran_TABLE VALUES('2018-11-30','123','cat1',5 )
INSERT INTO @tran_TABLE VALUES('2018-11-30','123','cat2',10)
INSERT INTO @tran_TABLE VALUES('2018-11-30','123','cat3',12)
INSERT INTO @tran_TABLE VALUES('2019-01-31','123','cat1',5 )
INSERT INTO @tran_TABLE VALUES('2019-01-31','123','cat2',10)
INSERT INTO @tran_TABLE VALUES('2019-01-31','123','cat2',15)
INSERT INTO @tran_TABLE VALUES('2019-01-31','123','cat3',5 )
INSERT INTO @tran_TABLE VALUES('2019-01-31','123','cat3',2 )
INSERT INTO @tran_TABLE VALUES('2019-03-31','123','cat1',15)
EOMONTH AccountNumber CLASSIFICATION_NAME Value
2018-11-30 123 cat1 10
2018-11-30 123 cat1 15
2018-11-30 123 cat1 5
2018-11-30 123 …Run Code Online (Sandbox Code Playgroud) 为什么 ggplot 一直给我一个月的第一天然后绘制时间序列。
这是我的代码示例:
library(ggplot2)
library(dplyr)
date <- as.Date(c("2008-01-31",
"2008-02-29",
"2008-03-31",
"2008-04-30",
"2008-05-31"))
count <- sample(5)
df <- data.frame(date = date, count = count)
df %>%
ggplot(aes(x = date, y = count))+
geom_line()+
scale_x_date(date_breaks = "1 month",
date_labels = '%m/%d')
Run Code Online (Sandbox Code Playgroud)
我希望 x 轴显示从df该月的最后一天或最后一天开始的实际日期。但它显示的是下个月的第一天。
我尝试搜索此问题,但找不到适用的解决方案。
谢谢。
我试图在LAG()不使用的情况下重新创建函数,LAG()但具有Offset依赖于列的动态。我要把这段代码复制到SparkSQL.
这是我的示例数据:
if object_id('tempdb.dbo.#myTable') is not null drop table #myTable
create table #myTable (id int,dates int, flag char, FromToFlagType varchar(2),FromToCounter INT)
insert into #myTable values(1, '20181031','V','VV',1)
insert into #myTable values(2, '20181130','V','VV',2)
insert into #myTable values(3, '20181231','V','VV',3)
insert into #myTable values(4, '20190131','F','VF',1)
insert into #myTable values(5, '20190228','F','FF',2)
insert into #myTable values(6, '20190331','F','FF',3)
insert into #myTable values(7, '20190430','F','FF',4)
insert into #myTable values(8, '20190531','V','FV',1)
insert into #myTable values(9, '20190630','V','VV',2)
insert into #myTable values(10, '20190731','V','VV',3)
id …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用R中的Xpath在html文档中搜索节点。在下面的代码中,我想知道当缺少节点时如何返回NULL或NA:
library(XML)
b <- '
<bookstore specialty="novel">
<book style="autobiography">
<author>
<first-name>Joe</first-name>
<last-name>Bob</last-name>
</author>
</book>
<book style="textbook">
<author>
<first-name>Mary</first-name>
<last-name>Bob</last-name>
</author>
<author>
<first-name>Britney</first-name>
<last-name>Bob</last-name>
</author>
<price>55</price>
</book>
<book style="novel" id="myfave">
<author>
<first-name>Toni</first-name>
<last-name>Bob</last-name>
</author>
</bookstore>
'
doc2 <- htmlTreeParse(b, useInternal=T)
xpathApply(doc2, "//author/first-name", xmlValue)
Run Code Online (Sandbox Code Playgroud)
例如,当我xpathApply()在author上运行该函数时,我会得到4个结果,但是如果要删除其中一个<first-name>节点,我希望该xpathApply函数返回NULL或其他代替它的位置,那么我就不希望它跳过它。如果要删除,我希望结果看起来像这样<first-name>Mary</first-name>:
Joe
NA
Britney
Tony
Run Code Online (Sandbox Code Playgroud) 我正在寻找有关如何解决同名拼写不同问题的建议.我有一个公司名称的SQL Server数据库,有些公司是相同的,但拼写是不同的.
例如:
Building Supplies pty
Buidings Supplies pty
Building Supplied l/d
Run Code Online (Sandbox Code Playgroud)
问题是变异中没有明显的一致性.有时它是额外的's',有时它是额外的空间.
不幸的是我没有查找列表,所以我不能使用模糊LookUp.我需要创建清单.
有没有人用来处理这个问题的方法?
ps我试图寻找这个问题,但似乎找不到类似的线程
谢谢
我有一个关于使用字符串函数及其对性能的影响的一般性问题。我有一个表,其列 ID 上有非聚集索引。该列中有 20 位 varchar。当我跑步时:
SELECT col1, col2
FROM tbl
WHERE ID = '00000000009123548754'
Run Code Online (Sandbox Code Playgroud)
结果很快就回来了。但当我跑步时
SELECT col1, col2
FROM tbl
WHERE RIGHT(ID, 10) = '9123548754'
Run Code Online (Sandbox Code Playgroud)
这需要很长时间。第一个查询的估计执行计划有一个索引查找,而第二个查询的估计执行计划有一个索引扫描。
我知道 Seek 相对于 Scan 是更快的原因,但为什么 String Function Right() 会产生如此大的影响?
我刚开始使用kableExtra库来使我的表格在 PDF 输出中看起来更好。
但是当我kable()在 R Notebook 文件中使用函数时,它不显示输出。相反,我看到输出应该是一个大的空白区域。
这是一个屏幕截图:
当我Knit将文件转换为 PDF 时,我可以看到输出。
这是一个屏幕截图:

有没有办法让输出同时出现在 Notebook 和 PDF 中?这是我的代码:
---
title: "R Notebook"
output:
pdf_document: default
html_notebook: default
---
```{r message=FALSE, warning=FALSE}
library(knitr)
library(kableExtra)
library(dplyr)
#plot(cars)
```
```{r}
cars %>%
slice(1:10) %>%
select(speed, dist) %>%
kable(format = "latex", booktabs = T) %>%
column_spec(column = 1:2, width = "0.5in")
```
Run Code Online (Sandbox Code Playgroud) 是否有可能t.test从piping运营商运营?
我试图找到答案,但围绕这个主题的大多数问题都是针对同一数据集进行多次测试.
我看了一个broom包,但看起来好像阅读结果.
我感兴趣的是是否可以只使用piping并运行t.test()输出.
例如,这是一些示例数据
library(dplyr)
d <- data.frame(
group = sample(LETTERS[1:2], size = 10, replace = T),
amount = sample(1:3, size = 10, replace = T)
)
Run Code Online (Sandbox Code Playgroud)
如果我运行t.test使用base R,我得到结果:
t.test(d$amount~d$group, var.equal = T)
> d
group amount
1 A 2
2 A 2
3 B 1
4 B 3
5 A 2
6 B 1
7 B 2
8 A 1
9 B 3
10 …Run Code Online (Sandbox Code Playgroud) 我有2个因子列,我想创建第三列,它告诉我第二列是什么,第一列没有.它与这篇文章非常相似,但是我从df使用setdiff()函数到使用函数时遇到了麻烦.
例如:
library(dplyr)
y1 <- c("a.b.","a.","b.c.d.")
y2 <- c("a.b.c.","a.b.","b.c.d.")
df <- data.frame(y1,y2)
Run Code Online (Sandbox Code Playgroud)
列y1有a.b.和列y2有a.b.c..我想要一个三分之一的列返回c.或只是c.
> df
y1 y2 col3
1 a.b. a.b.c. c.
2 a. a.b. b.
3 b.c.d. b.c.d.
Run Code Online (Sandbox Code Playgroud)
我认为这是应该的组合strsplit和setdiff,但我不能得到它的工作.
我试图将其转换factor为character,然后我尝试应用于strsplit()结果,但输出对我来说似乎很奇怪.它似乎在列表中创建了一个列表,这使得很难传递给它setdiff()
#convert factor to character
df <- df %>% mutate_if(is.factor, as.character)
lapply(df$y1,function(x)(strsplit(x,split = "[.]")))
> lapply(df$y1,function(x)(strsplit(x,split = "[.]")))
[[1]]
[[1]][[1]]
[1] …Run Code Online (Sandbox Code Playgroud) r ×5
sql ×4
sql-server ×3
t-sql ×3
dplyr ×1
ggplot2 ×1
hive ×1
hiveql ×1
indexing ×1
kable ×1
kableextra ×1
knitr ×1
latex ×1
performance ×1
piping ×1
select ×1
string ×1
strsplit ×1
time-series ×1
xpath ×1