java - 我如何使用java中的客户端服务器套接字编程通过网络流式传输 Parquet 文件

标签 java sockets parquet serversocket parquet-mr

我正在使用ParquetReader<Group> reader = new ParquetReader<Group>(path, groupReadSupport);用于从本地读取 Parquet 文件。

我想知道如何通过网络逐行传输 Parquet 文件

我想知道如何通过客户端套接字逐行传递该行数据,但我不想传递字符串格式,我想在服务器套接字中以 Parquet 格式传递,并从服务器套接字传递该行数据,我想在和中处理它以字符串格式打印

最佳答案

ParquetReader 内部使用 InputFile从不同来源阅读的摘要。默认实现是 HadoopInputFile,它使用 hadoop 支持的文件系统实现之一。您可以尝试实现自己的 InputFilecreate the reader from that ,但我认为这对于纯粹的流输入来说是不可能的。

parquet 文件包含有关所包含的列、其类型和统计信息的元数据,这是处理数据所需的。该元数据包含在文件末尾,这使得以流方式写入文件成为可能。但是读取需要能够查找到文件末尾,读取该元数据的长度,然后查找到元数据的开头以读取该元数据,最后查找到实际列数据的开头。

关于java - 我如何使用java中的客户端服务器套接字编程通过网络流式传输 Parquet 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58956146/

相关文章:

java - 如何使用 map 将 json 列表包装到对象

c++ - 如何检查套接字是否仍处于打开状态?

hadoop - 基于 Parquet 文件使用配置单元创建表

java - Cobertura 覆盖忽略 maven 项目中的注释?

java - 获取 Yammer 中已用时间

c++ - 使用 winsock 库发送 GET http 请求时出现 400 bad request 错误

node.js - 套接字连接在收到握手响应之前关闭

apache-spark - 在 Parquet 中使用嵌套数据类型有什么好处?

apache-spark - Pyspark 数据框 Parquet 与增量 : different number of rows

java - 在有效负载模式下从 Camel 处理器返回的空 SOAP 体