使用 PySpark 在 HDFS 中保存并附加文件

2024-04-09

我在 PySpark 中有一个名为df。我已经注册了这个df as a temptable像下面这样。

df.registerTempTable('mytempTable')

date=datetime.now().strftime('%Y-%m-%d %H:%M:%S')

现在从这个临时表中我将获得某些值,例如列的 max_idid

min_id = sqlContext.sql("select nvl(min(id),0) as minval from mytempTable").collect()[0].asDict()['minval']

max_id = sqlContext.sql("select nvl(max(id),0) as maxval from mytempTable").collect()[0].asDict()['maxval']

现在我将收集所有这些值,如下所示。

test = ("{},{},{}".format(date,min_id,max_id))

我找到test不是一个data frame但这是一个str string

>>> type(test)
<type 'str'>

现在我想保存这个test作为文件HDFS。我还想将数据附加到同一文件中hdfs.

我如何使用 PySpark 做到这一点?

仅供参考,我正在使用 Spark 1.6,无法访问 Databricksspark-csv包裹。


在这里,您只需要将数据与concat_ws并将其修改为文本:

query = """select concat_ws(',', date, nvl(min(id), 0), nvl(max(id), 0))
from mytempTable"""

sqlContext.sql(query).write("text").mode("append").save("/tmp/fooo")

或者甚至是更好的选择:

from pyspark.sql import functions as f

(sqlContext
    .table("myTempTable")
    .select(f.concat_ws(",", f.first(f.lit(date)), f.min("id"), f.max("id")))
    .coalesce(1)
    .write.format("text").mode("append").save("/tmp/fooo"))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 PySpark 在 HDFS 中保存并附加文件 的相关文章

随机推荐

  • Invalid Uri : uri 方案无效

    我正在尝试通过 WebRequest 登录网站 我此时遇到异常 WebRequest req WebRequest Create formUrl Trim string url string username string password
  • iOS 6 中使用 AudioFileServices 进行粒度合成

    我对我正在开发的声音合成应用程序有疑问 我正在尝试读取音频文件 使用创建随机 颗粒 颗粒合成技术 http en wikipedia org wiki Granular synthesis 将它们放入输出缓冲区 然后能够使用 OpenAL
  • 带有 ASP.NET 的 Google 日历 API

    我对使用 Google Calendar API 在 ASP NET Webforms C 中添加 修改事件感到困惑 我不确定我是否需要 oAuth 或者什么 我的应用程序位于我自己的服务器上 访问我自己的域和我自己的日历 我不需要其他用户
  • R:将矩阵重新排列为三列

    我在 R 中有一个矩阵 每个条目i j是分数 rownames 和 colnames 是 id 我只想要一个 3 列矩阵 而不是矩阵 i j score 现在我正在使用嵌套 for 循环 喜欢 for i in rownames g pri
  • 关于PE的魔数

    0x10b PE32 executable 0 107 ROM image 0x20b PE32 64 bit executable 是什么ROM image 有趣的问题 我涉足过操作 PE 文件 但从未注意到这一点 我认为它们的用途如下
  • 修改 tar 存档中嵌套的文件

    我正在尝试做一个grep然后一个sed搜索文件内的特定字符串 这些文件位于多个 tar 内 全部位于一个主 tar 存档内 现在 我通过以下方式修改文件 首先解压主 tar 存档 然后将里面的焦油全部提取出来 然后进行递归grep进而sed
  • JavaScript 正则表达式排除某些单词/短语?

    如何编写正则表达式模式来测试字符串是否包含多个具有以下结构的子字符串 cake xxx xxx 是哪里任何但不是 奶酪 或 牛奶 或 黄油 例如 I have a cake honey and cake egg 应该返回true but I
  • 防止 WPF 窗口最小化(主要是 Winkey + D)

    我有一个应该像 Windows Vista 小工具一样运行的窗口 它应该保留在桌面上 而不是出现在任务栏和 alt tab 菜单上 但最重要的是 不要最小化 这是它的标题 由于其样式设置为 None 因此它没有控制按钮 最小化 关闭等 但仍
  • Jenkins 向错误的提交 ID 发送通知

    我有几个 Jenkins 管道 所有管道都从 Bitbucket 导入共享库以实现某些实用方法 并且我想将构建状态通知发送到每个项目自己的 Bitbucket 存储库 我安装了Bitbucket 构建状态通知器 https plugins
  • 如何在Spring-MVC方法中绑定抽象类的子类?

    给定 Spring MVC 控制器中的 保存 方法 RequestMapping value save public void save ModelAttribute MY KEY final MyModel myModel 拥有位于myM
  • xdebug、PhpStorm 和 Laravel 3 / mod_rewrite 未命中断点

    我非常绝望并且没有想法 我已经为 Laravel 3 项目配置了 xdebug 和 PhpStorm 在 Mac OS X Apache 上本地运行该项目 因此 PhpStorm 和 Web 应用程序在同一台计算机上运行 配置虚拟主机 使
  • 从迭代器中删除 N 个值的 Pythonic 解决方案

    有没有一个Pythonic解决方案可以删除n来自迭代器的值 你可以通过丢弃来做到这一点n值如下 def drop it n for in xrange n it next 但在我看来 这并不像 Python 代码应有的那么优雅 我在这里缺少
  • 如何使用 cPanel 重新启动 NodeJS

    我需要知道从基于 cPanel 的服务器的根端使用什么来重新启动 NodeJS 应用程序 例如 如果进程由于某种原因现在终止 NodeJS 应用程序将不会启动 直到我手动启动它 如果服务器重新启动 我需要手动重新启动它 此外 这是服务器上多
  • Material-UI:更改 TextField 中的自动填充背景颜色

    目前 我有一个样式化的文本字段 当我开始在电子邮件字段中输入时 会出现自动填充选项 如果我选择自动填充选项之一 文本字段的背景将变为白色并带有黑色文本 我想改变这些风格 我试过这个 import withStyles from materi
  • IntelliJ 在整个文件中应用检查修复

    In IntelliJ I have the inspection that checks for variables that can be made final turned on so that IntelliJ will highl
  • MiniCssExtractPlugin 公共路径不起作用

    我在用MiniCssExtractPlugin在我的 React 应用程序中延迟加载 CSS 文件 我给了publicPath选项MiniCssExtractPlugin但它并没有采用这个选项值 而是采用output publicPath
  • 在 R 中运行时获取用户的整数输入

    我想在运行时获取 R 代码中整数变量的输入 我主要用 C 编写代码 想知道是否有类似的函数scanf在 R 中可以用来读取用户的输入 正如上面的评论所说 你可以使用readlines 然后转换为整数as integer 我还提供一个替代方案
  • Application.GetSaveAsFilename(InitialFileName:=Range("O26") 有时会出现一个空白对话框

    我有一个子程序将我的文档保存为二进制工作簿 来自堆栈溢出 我尝试从单元格中获取值用作文件名 通常它工作得很好 我不明白为什么有时不能 我在单元格 O26 中的数据始终是文本字符串 Dim fname As Variant Dim FileF
  • 如何在 Intellij Idea 上打开 Ant 项目(Nutch Source)?

    我想打开 Nutch 2 1 源文件 http www eu apache org dist nutch 2 1 http www eu apache org dist nutch 2 1 在 Intellij IDEA 以下是如何在 Ec
  • 使用 PySpark 在 HDFS 中保存并附加文件

    我在 PySpark 中有一个名为df 我已经注册了这个df as a temptable像下面这样 df registerTempTable mytempTable date datetime now strftime Y m d H M