String 请将双精度转换为字符
在sparlyr中将替身转换为角色时,我遇到了非常奇怪的行为。 周期似乎是随机添加的。 这里是一个可复制的示例:String 请将双精度转换为字符,string,csv,sparklyr,String,Csv,Sparklyr,在sparlyr中将替身转换为角色时,我遇到了非常奇怪的行为。 周期似乎是随机添加的。 这里是一个可复制的示例: my_test_df <- data.frame(char_val = 004545, char_val2 = 100286908074) my_test_spark <- my_test_df %>% copy_to(sc, ., 'my_test_df_spark', overwrite = TRUE) my_test_spark ## Source:
my_test_df <- data.frame(char_val = 004545, char_val2 = 100286908074)
my_test_spark <- my_test_df %>% copy_to(sc, ., 'my_test_df_spark', overwrite = TRUE)
my_test_spark
## Source: spark<my_test_df_spark> [?? x 2]
## char_val char_val2
## <dbl> <dbl>
## 4545 100286908074
my_test_spark %>%
mutate(char_val = lpad(as.character(char_val), 6, "0"),
char_val2 = lpad(as.character(char_val2), 13, "0")) %>%
head
## Source: spark<?> [?? x 2]
## char_val char_val2
## <chr> <chr>
## 4545.0 1.00286908074
my_test_df%
mutate(char_val=lpad(as.character(char_val),6,“0”),
char_val2=lpad(如.character(char_val2),13,“0”))%>%
头
##来源:火花[?×2]
##char_val char_val2
##
## 4545.0 1.00286908074
我真的不明白为什么在最后的字符串中有随机的句点。有什么办法可以避免吗?因为字符(character_val2)
是用科学符号表示的值lpad
正在截断科学符号
my_test_spark %>%
mutate(char_val3 = as.character(char_val2))
#> # Source: spark<?> [?? x 3]
#> char_val char_val2 char_val3
#> <dbl> <dbl> <chr>
#> 1 4545 100286908074 1.00286908074E11
请注意,char\u val2
需要是64位整数。as.character(char\u val2)
以科学记数法获取值lpad
正在截断科学符号
my_test_spark %>%
mutate(char_val3 = as.character(char_val2))
#> # Source: spark<?> [?? x 3]
#> char_val char_val2 char_val3
#> <dbl> <dbl> <chr>
#> 1 4545 100286908074 1.00286908074E11
请注意,char_val2
需要是64位整数