小编Tag*_*gar的帖子

如何在Spark中读取嵌套集合

我有一张镶有桌子的镶木桌子

,array <struct <col1,col2,.. colN >>

可以使用LATERAL VIEW语法在Hive中对此表运行查询.

如何将此表读入RDD,更重要的是如何在Spark中过滤,映射等嵌套集合?

在Spark文档中找不到对此的任何引用.提前感谢您的任何信息!

PS.感觉可能有助于在桌子上给出一些统计数据.主表~600中的列数.行数~200m.嵌套集合中的"列"数〜10.平均集合中的平均记录数~35.

nested apache-spark parquet apache-spark-sql lateral-join

18
推荐指数
2
解决办法
2万
查看次数

便携式conda环境作为二进制压缩包

我正在尝试构建一个便携式conda环境。因此,我们可以打包并将其分发到其他服务器或以后的许多服务器。我们在其中构建环境以及稍后将其部署的地方是两个不同的地方。我注意到,conda createconda install两个硬编码环境位置到下所有的家当安装脚本environment_path\bin-有没有一种方法可以重写?

我们必须使用部署位置,而不必在shebang bin/脚本中为该环境构建位置。

还创建了https://github.com/conda/conda/issues/7861

免责声明:我知道使用导出的yaml文件重建环境的选项,但这不是我们在这里查找的内容。我们希望使conda环境可以作为二进制tarball重新分发/移植-部署位置已知,但与环境构建位置不同。

python anaconda conda

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

Spark:数据框中的zipwithindex equivelant

假设我有以下数据帧:

dummy_data = [('a',1),('b',25),('c',3),('d',8),('e',1)]
df = sc.parallelize(dummy_data).toDF(['letter','number'])
Run Code Online (Sandbox Code Playgroud)

我想创建以下数据帧:

[('a',0),('b',2),('c',1),('d',3),('e',0)]
Run Code Online (Sandbox Code Playgroud)

我所做的是将其转换为rdd使用zipWithIndex函数并在加入结果后:

convertDF = (df.select('number')
              .distinct()
              .rdd
              .zipWithIndex()
              .map(lambda x:(x[0].number,x[1]))
              .toDF(['old','new']))


finalDF = (df
            .join(convertDF,df.number == convertDF.old)
            .select(df.letter,convertDF.new))
Run Code Online (Sandbox Code Playgroud)

是否存在与zipWIthIndex数据帧类似的功能?还有另一种更有效的方法来完成这项任务吗?

python apache-spark pyspark spark-dataframe

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