steveloughran commented on PR #1139:
URL: https://github.com/apache/parquet-mr/pull/1139#issuecomment-2046023483

   Right, I think I have addressed all the issues except for the design of a 
public API for other input sources.
   
   I do think that would be good, not just for iceberg integration, but because 
it will let local filesystem clients do this through LocalInputFile. This is 
already in hadoop, where it only takes 100 LoC to implement 
(https://github.com/apache/hadoop/blob/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java#L319).
 (The hadoop API used java.io.nio when designing ours, so this isn't 
surprising).
   
   Can we get this in and then I can collaborate with you and anyone else 
interested on having a broader API? I would obviously like what we've done to 
be ~the reference design, but the binding, testing and including this in the 
benchmarks are areas I need help from the experts in the project to understand 
how to fit it in the best.
   
   Incidentally, you should be aware that the next bit of parquet work I want 
to do is to pass in seek policy and file status when opening files. This is 
trivial to do on Hadoop 3.3+ saves a HEAD request through the ABFS and S3A 
connectors, and let them tune prefetching/caching/GET range policy. However, 
trying to get that builder API through reflection is *very* complicated. 
   
   What I am doing is create some reflection-friendly static methods 
(https://github.com/apache/hadoop/pull/6686), ship this in hadoop 3.3.9 and 
3.4.1 and use the BindingUtils and DynMethods code to invoke. Parquet always 
calls getFileStatus() before opening a file, so the HEAD is completely 
superfluous. Note: that hadoop PR lifts and repackages the DynMethods classes 
so that for testing there we can be confident it works.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to