当前位置: 首页 > 面试题库 >

从文本文件存储/读取后,如何恢复(键,值)对的RDD

司马德水
2023-03-14
问题内容

我使用saveAsTextFile将(键,值)对的RDD保存到文本文件中。使用sc.textFile("filename.txt")命令读回文本文件后,我得到的是字符串而不是(键,值)对。我的键以前是字符串,值是浮点列表。这是一个例子:

(u'ALM_0', [98.0, 110.0, 104.0, 6.0, 208.0, -262.0, 136.0, -204.67395833333333, 45.362440283766297, -196487.0, 1.0, 4.0, 2.5, 1.1180339887498949, 10.0, -46.0, 261.0, -3.6343749999999999])

如何轻松地将此字符串转换为(键,值)对?是否有Spark read命令可以在读取时执行此命令?

我正在使用Python接口连接Spark。


问题答案:

ast.literal_eval
应该做到这一点:

import ast

data1 = [(u'BAR_0', [1.0, 2.0, 3.0]), (u'FOO_1', [4.0, 5.0, 6.0])]
rdd = sc.parallelize(data1)
rdd.saveAsTextFile("foobar_text")

data2 = sc.textFile("foobar_text").map(ast.literal_eval).collect()
assert sorted(data1) == sorted(data2)

但总的来说,最好首先避免这种情况,并使用例如SequenceFile

rdd.saveAsPickleFile("foobar_seq")
sc.pickleFile("foobar_seq")


 类似资料:
  • 问题内容: 我需要在存储过程中读入由SSIS包创建的日志文件。 有什么好方法吗? 我尝试使用此代码,但将文件内容显示为乱码。有没有解决的编码问题?有没有更简单的方法? 问题答案: 您是否尝试过将笔直插入?例如:

  • 问题内容: 我获得了一个MySQL数据库文件,需要将其还原为Windows Server 2008计算机上的数据库。 我尝试使用MySQL Administrator,但出现以下错误: 所选文件是由mysqldump生成的,不能由该应用程序还原。 我该如何工作? 问题答案: 它应该像运行此命令一样简单: 如果转储是单个数据库,则可能必须在文件顶部添加一行: 如果它是许多数据库的转储,则use语句已

  • 是否可以在不使用下载功能的情况下读取文件中的值? 代替的东西: 类似于:

  • 问题内容: 我想从一个文本文件(例如contactids.txt)读取整数值。在文件中我有像 我想从文本文件中读取它们…请帮助 问题答案: 您可能想要做这样的事情(如果您使用的是Java 5及更高版本) 通过Julian Grenier从数组中的文件读取整数

  • 问题内容: 我有一个文件,其内容为python列表的形式,如下所示: 有什么办法可以将python文件读回到列表对象中吗?而不是使用整个文件,而是将其读取为字符串。 编辑:对于那些可能有兴趣的人,我使用(import ast)遇到了一个奇怪的问题,作为解决上述问题的建议。 我在其中使用的程序具有从yahoo finance python模块获取历史股票数据的功能。此函数与ast.literal_e

  • 问题内容: 有什么方法可以读取文本文件并将内容存储在Jtable中?我有一个文本文件,其中包含有关某些过程的某些信息。就像一个具有列和各自值的表。是否可以获取.txt文件的内容并以Jtable的形式显示?我正在使用Eclipse和Window Builder。任何帮助将不胜感激。谢谢! 问题答案: 我将研究Oracle的教程: 读/写文本文件 JTable教程 当从文本文件中获取数据时,您需要将其