首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将二进制文件转换为RDD或Dataframe?

如何将二进制文件转换为RDD或Dataframe?
EN

Stack Overflow用户
提问于 2015-11-05 12:20:20
回答 1查看 1.9K关注 0票数 0

http://spark.apache.org/docs/latest/sql-programming-guide.html#interoperating-with-rdds

该链接显示如何将txt文件更改为RDD,然后更改为Dataframe。

那么如何处理二进制文件呢?

请举一个例子,非常感谢。

这里有一个类似的问题没有答案:reading binary data into (py) spark DataFrame

更详细的是,我不知道如何解析二进制文件.for示例,我可以将txt文件解析成如下所示的行或词:

代码语言:javascript
复制
JavaRDD<Person> people = sc.textFile("examples/src/main/resources/people.txt").map(
  new Function<String, Person>() {
    public Person call(String line) throws Exception {
      String[] parts = line.split(",");

      Person person = new Person();
      person.setName(parts[0]);
      person.setAge(Integer.parseInt(parts[1].trim()));

      return person;
    }
  });

似乎只需要这样解析二进制文件或二进制流的API:

代码语言:javascript
复制
 JavaRDD<Person> people = sc.textFile("examples/src/main/resources/people.bin").map(
      new Function<String, Person>() {
        public Person call(/*stream or binary file*/) throws Exception {
          /*code to construct every row*/
          return person;
        }
      });

编辑:二进制文件包含结构数据(关系数据库的表,数据库是自制的数据库),我知道结构数据的元信息,我计划将结构数据转换为RDDRow。

当我使用FileSystem的API (http://hadoop.apache.org/docs/current/api/org/apache/hadoop/fs/FileSystem.html)将二进制流写入HDFS .And时,我可以更改二进制文件的所有内容。二进制文件是可拆分的。我不知道像上面的示例代码那样解析二进制文件。因此,到目前为止,我无法尝试任何事情。

EN

回答 1

Stack Overflow用户

发布于 2015-11-06 06:10:41

有一个二进制记录读取器已经可以用于spark (我相信在1.3.1中可用,至少在scala中是可用的)。

代码语言:javascript
复制
sc.binaryRecord(path: string, recordLength: int, conf)

但是,将这些二进制文件转换为可接受的格式以进行处理是由您自己决定的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33544385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档