Как вы читаете ORC-файл в Java? Я хочу прочитать в небольшом файле для некоторой проверки выходного теста, но я не могу найти решение.Чтение файла ORC в Java
ответ
Наткнулся это и реализуется один я недавно
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hive.ql.io.orc.OrcFile;
import org.apache.hadoop.hive.ql.io.orc.Reader;
import org.apache.hadoop.hive.ql.io.orc.RecordReader;
import org.apache.hadoop.hive.serde2.objectinspector.StructField;
import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
import java.util.List;
public class OrcFileDirectReaderExample {
public static void main(String[] argv)
{
try {
Reader reader = OrcFile.createReader(HdfsFactory.getFileSystem(), new Path("/user/hadoop/000000_0"));
StructObjectInspector inspector = (StructObjectInspector)reader.getObjectInspector();
System.out.println(reader.getMetadata());
RecordReader records = reader.rows();
Object row = null;
//These objects are the metadata for each column. They give you the type of each column and can parse it unless you
//want to parse each column yourself
List fields = inspector.getAllStructFieldRefs();
for(int i = 0; i < fields.size(); ++i) {
System.out.print(((StructField)fields.get(i)).getFieldObjectInspector().getTypeName() + '\t');
}
while(records.hasNext())
{
row = records.next(row);
List value_lst = inspector.getStructFieldsDataAsList(row);
StringBuilder builder = new StringBuilder();
//iterate over the fields
//Also fields can be null if a null was passed as the input field when processing wrote this file
for(Object field : value_lst) {
if(field != null)
builder.append(field.toString());
builder.append('\t');
}
//this writes out the row as it would be if this were a Text tab seperated file
System.out.println(builder.toString());
}
}catch (Exception e)
{
e.printStackTrace();
}
}
}
Согласно Apache Wiki, формат файла ORC был введен в Hive 0.11.
Таким образом, вам понадобятся пакеты Hive в исходном пути проекта для чтения файлов ORC. Пакет для того же являются
org.apache.hadoop.hive.ql.io.orc.Reader;
org.apache.hadoop.hive.ql.io.orc.OrcFile
Я попытался реализации решения с использованием они уже, но не имели большой удачи. –
Попробуйте для получения ORCFile сверку ...
private long getRowCount(FileSystem fs, String fName) throws Exception {
long tempCount = 0;
Reader rdr = OrcFile.createReader(fs, new Path(fName));
StructObjectInspector insp = (StructObjectInspector) rdr.getObjectInspector();
Iterable<StripeInformation> iterable = rdr.getStripes();
for(StripeInformation stripe:iterable){
tempCount = tempCount + stripe.getNumberOfRows();
}
return tempCount;
}
//fName is hdfs path to file.
long rowCount = getRowCount(fs,fName);
Можете ли вы упомянуть об импорте, внешних библиотеках? Только одну функцию трудно повторно использовать, если они не упомянуты. –
- 1. Чтение файла в Java
- 2. Чтение двоичного файла в Java vs C++
- 3. чтение двоичного файла C++ в Java
- 4. Чтение файла в java
- 5. Чтение файла в Java
- 6. чтение файла в java
- 7. Чтение файла .java в Java
- 8. Чтение файла свойства в Java
- 9. Чтение файла в C++
- 10. Чтение файла в C#
- 11. Чтение файла в C
- 12. чтение файла в C++
- 13. Чтение файла Java
- 14. Чтение текстового файла в Java
- 15. Чтение файла csv в Java
- 16. Чтение файла .CSV в C
- 17. Чтение файла потока в java
- 18. Чтение файла Java .class
- 19. чтение текстового файла java
- 20. Чтение из файла - Java
- 21. Чтение файла с Java
- 22. Java - Чтение текстового файла
- 23. Json чтение файла в Java
- 24. Чтение json-файла в Java
- 25. Чтение файла TXT в Java
- 26. Чтение файла JSON в Java
- 27. Чтение файла в java-ошибке
- 28. Чтение файла .properties в java
- 29. Чтение файла размером в java
- 30. Чтение двоичного файла в Java
Это спасло меня! Отлично! – FisherCoder