小编Mat*_*ock的帖子

有没有办法用sparklyr处理嵌套数据?

在下面的示例中,我加载了一个镶木地板文件,其中包含该meta字段中地图对象的嵌套记录.sparklyr似乎在处理这些方面做得很好.但是tidyr::unnest,不会转换为SQL(或HQL - 可以理解 - 就像LATERAL VIEW explode()),因此无法使用.有没有办法以其他方式取消数据?

tfl <- head(tf)
tfl
Source:   query [?? x 10]
Database: spark connection master=yarn-client app=sparklyr local=FALSE

                            trkKey             meta     sources startTime
                             <chr>           <list>      <list>    <list>
1 3juPe-k0yiMcANNMa_YiAJfJyU7WCQ3Q <S3: spark_jobj> <list [24]> <dbl [1]>
2 3juPe-k0yiAJX3ocJj1fVqru-e0syjvQ <S3: spark_jobj>  <list [1]> <dbl [1]>
3 3juPe-k0yisY7UY_ufUPUo5mE1xGfmNw <S3: spark_jobj>  <list [7]> <dbl [1]>
4 3juPe-k0yikXT5FhqNj87IwBw1Oy-6cw <S3: spark_jobj> <list [24]> <dbl [1]>
5 3juPe-k0yi4MMU63FEWYTNKxvDpYwsRw <S3: spark_jobj>  <list [7]> <dbl [1]>
6 3juPe-k0yiFBz2uPbOQqKibCFwn7Fmlw …
Run Code Online (Sandbox Code Playgroud)

r tidyr sparklyr

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

rbindlist 和嵌套的 data.table,使用/不使用 get 的不同行为

我正在使用jsonlite它加载一些 JSON 数据,这会导致一些嵌套数据(在结构上)类似于data.table dt下面构造的玩具。我希望能够用于rbindlist将嵌套的data.tables绑定在一起。

设置:

> dt <- data.table(a=c("abc", "def", "ghi"), b=runif(3))
> dt[, c:=list(list(data.table(d=runif(4), e=runif(4))))]
> dt
     a         b            c
1: abc 0.2623218 <data.table>
2: def 0.7092507 <data.table>
3: ghi 0.2795103 <data.table>
Run Code Online (Sandbox Code Playgroud)

使用内置于 中的 NSE data.table,我可以执行以下操作:

> rbindlist(dt[, c])
            d          e
 1: 0.8420476 0.26878325
 2: 0.1704087 0.59654706
 3: 0.6023655 0.42590380
 4: 0.9528841 0.06121386
 5: 0.8420476 0.26878325
 6: 0.1704087 0.59654706
 7: 0.6023655 0.42590380
 8: 0.9528841 0.06121386
 9: 0.8420476 0.26878325
10: 0.1704087 …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

火花可以与纱线管理的hadoop集群上使用的火花一起使用吗?

sparklyr- [R包能够连接到YARN管理Hadoop集群?这似乎没有在集群部署文档中记录.使用SparkRSpark附带的软件包可以通过以下方式实现:

# set R environment variables
Sys.setenv(YARN_CONF_DIR=...)
Sys.setenv(SPARK_CONF_DIR=...)
Sys.setenv(LD_LIBRARY_PATH=...)
Sys.setenv(SPARKR_SUBMIT_ARGS=...)

spark_lib_dir <- ... # install specific
library(SparkR, lib.loc = c(sparkr_lib_dir, .libPaths()))
sc <- sparkR.init(master = "yarn-client")
Run Code Online (Sandbox Code Playgroud)

然而,当我用上面的最后一行交换时

library(sparklyr)
sc <- spark_connect(master = "yarn-client")
Run Code Online (Sandbox Code Playgroud)

我收到错误:

Error in start_shell(scon, list(), jars, packages) : 
  Failed to launch Spark shell. Ports file does not exist.
    Path: /usr/hdp/2.4.2.0-258/spark/bin/spark-submit
    Parameters: '--packages' 'com.databricks:spark-csv_2.11:1.3.0,com.amazonaws:aws-java-sdk-pom:1.10.34' '--jars' '<path to R lib>/3.2/sparklyr/java/rspark_utils.jar'  sparkr-shell /tmp/RtmpT31OQT/filecfb07d7f8bfd.out

Ivy Default Cache set to: /home/mpollock/.ivy2/cache
The jars for …
Run Code Online (Sandbox Code Playgroud)

r hadoop-yarn apache-spark sparkapi sparklyr

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

标签 统计

r ×3

sparklyr ×2

apache-spark ×1

data.table ×1

hadoop-yarn ×1

sparkapi ×1

tidyr ×1