apache-spark - 如何在地图函数中使用 SparkSession?
问题描述
我正在使用 spark-sql-2.4.1v。我有一个场景,我需要在地图函数中创建一个 tempTableOrView。
sparkSession = //create a sparkSession
Dataset<?> unionDs =//create an empty
countriesListDs.map( country -> {
String tableName = "table_" + country ;
sparkSession.createTempTableOrView(tableName );
resultDs = //do aggregations on this table
unionDs = unionDs.union(resultDs)
sparkSession.catalog.dropTable(tableName )
);
unionDs.writeToFile;
是否可以访问 map 函数中的 sparkSession ?
请给我建议
解决方案
是否可以访问 map 函数中的 sparkSession ?
不,这是不可能的(并且没有任何意义,因为他们要描述分布式计算而不是其中的一部分)。
SparkSession 与 SparkContext 一样,仅在驱动程序上可用,而map
在执行程序上工作。
我需要在地图函数中创建一个 tempTableOrView。
里面map
?不可能(并且没有多大意义,因为它是基于行的)。
你应该map
然后createOrReplaceTempView
。
推荐阅读
- python-3.x - Python Windows 10 64bit - 用于 trackpy 的 FFMPEG
- css - R 闪亮的垂直滑块,但鼠标水平拖动
- oracle - Oracle Escape 替换变量中的特殊字符
- mouseover - 如何在网页上使用蓝色棱镜鼠标悬停
- mysql - 如何为缺少的数据组合添加行并将相应的字段估算为 0
- c - 通过用户输入打印链接列表
- android - 将 getActivity 作为 LifecycleOwner 传递给片段中 LiveData 的观察方法的原因是什么?
- python - Python print 语句在我的函数结束时不打印任何内容
- android - 在 Termux 上安装 apk 并等待它完成或检查 apk 是否已安装
- r - 如何在R中按行格式化数据表