Return-Path: X-Original-To: apmail-apex-dev-archive@minotaur.apache.org Delivered-To: apmail-apex-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id F23F51995B for ; Mon, 14 Mar 2016 08:28:03 +0000 (UTC) Received: (qmail 48302 invoked by uid 500); 14 Mar 2016 08:28:03 -0000 Delivered-To: apmail-apex-dev-archive@apex.apache.org Received: (qmail 48238 invoked by uid 500); 14 Mar 2016 08:28:03 -0000 Mailing-List: contact dev-help@apex.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@apex.incubator.apache.org Delivered-To: mailing list dev@apex.incubator.apache.org Received: (qmail 48226 invoked by uid 99); 14 Mar 2016 08:28:03 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 14 Mar 2016 08:28:03 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 325CA1A1386 for ; Mon, 14 Mar 2016 08:28:03 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.279 X-Spam-Level: * X-Spam-Status: No, score=1.279 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=2, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd2-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=datatorrent-com.20150623.gappssmtp.com Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id yjEL1b0ezfCw for ; Mon, 14 Mar 2016 08:28:00 +0000 (UTC) Received: from mail-ob0-f180.google.com (mail-ob0-f180.google.com [209.85.214.180]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 310825FB4A for ; Mon, 14 Mar 2016 08:28:00 +0000 (UTC) Received: by mail-ob0-f180.google.com with SMTP id ts10so168627370obc.1 for ; Mon, 14 Mar 2016 01:28:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=datatorrent-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to; bh=dsywxvueDKQ1u+FvcM9O9bN97KvmOQWwcdCNnFwygJQ=; b=EM7lmDZNyn2UD0PyyQRX+S9v2XSLnwKSxIUqujVYzGHO05Qwl9zOejE0NKvyR7jiPK IhdyIeu3qyRFtT5gAZ1AjwoioI9uv/aEsWkHhN8mBvuY3VRzuevk1HfDTBewJMTQLa79 xCmkJJ5aDbxjGw8ZuLM/ErrsTt8Lv3JqTR/MZz+EH6GTm3QhOdKatAgWgGuXzTJQzSZk KqGWbCivTzGJKmlS6oORo3UHM0tTiNY6NSf0srJhFMNSKSD64lgkGD+kIAv5YjKJjTkf rh9izRlyCW59nsFL1Pit4weQf1kH2GXwCcQxZnbXmBSvwtMVhVMBGaFn69wuUEf7sfFC 4hew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to; bh=dsywxvueDKQ1u+FvcM9O9bN97KvmOQWwcdCNnFwygJQ=; b=SYh4/leRM7NyuzwZHwBT3MrowSMmTAuFn3fP2trpaMvLgnzSyl+wn18e7jSMrQTXvD 1l/GvKodJ9cWD/Yb0ihqcbLg0S1tzxnkibIN1aFWr0VLbvjd5GUycuXnaIFR1taYLnv1 l4BPyxr+YIt9xf2rXMnqE3hUSRSOGxcfH3H56FXrOWG/xOuHWKsDQNNmjIN+foBbn2Av FxZLlDRVC5lFYwcguB54SOiaqHzVilOOZ6DEkZiY+VqcFPqVWtPXU7P1P9lnuq3R6MiT PJ0KAb4Nh4hSBds/UF2xXyuc3l9bP3r0fO52p53KdV0zYNVBsSN0a8/BQ7LvSaMqDMSI 8gsw== X-Gm-Message-State: AD7BkJIoiXBrY9g/ctDbB1BSwMYzFqwMK7qEAcX2CuGXYf+b8xkVz0hsKwQF7I/KgprI+xJGDX2GKZaAyvjem/hX MIME-Version: 1.0 X-Received: by 10.182.60.198 with SMTP id j6mr13698247obr.12.1457944073507; Mon, 14 Mar 2016 01:27:53 -0700 (PDT) Received: by 10.157.7.193 with HTTP; Mon, 14 Mar 2016 01:27:53 -0700 (PDT) In-Reply-To: References: Date: Mon, 14 Mar 2016 13:57:53 +0530 Message-ID: Subject: Re: Adding ParquetReaderOperator in Malhar From: Mohit Jotwani To: dev@apex.incubator.apache.org Content-Type: multipart/alternative; boundary=001a11c1bcbc9ab2f3052dfe0e54 --001a11c1bcbc9ab2f3052dfe0e54 Content-Type: text/plain; charset=UTF-8 +1 Regards, Mohit On Mon, Mar 14, 2016 at 12:31 PM, Shubham Pathak wrote: > @Tushar, > > A parquet file looks like this: > > 4-byte magic number "PAR1" > > > ... > > > > ... > > ... > > > ... > > File Metadata > 4-byte length in bytes of file metadata > 4-byte magic number "PAR1" > > Praquet being a binary columnar storage format, readers are expected > to first read the file metadata to find all the column chunks they are > interested in. The columns chunks should then be read sequentially. > > > > On Mon, Mar 14, 2016 at 11:44 AM, Yogi Devendra > wrote: > > > +1 for Parquet reader. > > > > ~ Yogi > > > > On 14 March 2016 at 11:41, Yogi Devendra > wrote: > > > > > Shubham, > > > > > > I feel that instead of having an operator; it should be a plugin to the > > > input operator. > > > > > > So that, if someone has some other input operator for a particular file > > > system (extending AbstractFileInputOperator) he should be able to read > > > Parquet file from that file system using this plugin. > > > > > > ~ Yogi > > > > > > On 14 March 2016 at 11:31, Tushar Gosavi > wrote: > > > > > >> +1 > > >> > > >> Does Parquet support partitioned read from a single file? If yes then > > may > > >> be we can also add support in FileSplitterInput and BlockReader to > read > > >> single file parallely. > > >> > > >> - Tushar. > > >> > > >> > > >> > > >> On Mon, Mar 14, 2016 at 11:23 AM, Devendra Tagare < > > >> devendrat@datatorrent.com > > >> > wrote: > > >> > > >> > + 1 > > >> > > > >> > ~Dev > > >> > > > >> > On Mon, Mar 14, 2016 at 11:12 AM, Shubham Pathak < > > >> shubham@datatorrent.com> > > >> > wrote: > > >> > > > >> > > Hello Community, > > >> > > > > >> > > I am working on developing a ParquetReaderOperator which will > allow > > >> apex > > >> > > users to read parquet files. > > >> > > > > >> > > Apache Parquet is a columnar storage format available to any > project > > >> in > > >> > the > > >> > > Hadoop ecosystem, regardless of the choice of data processing > > >> framework, > > >> > > data model or programming language. > > >> > > For more information : Apache Parquet > > >> > > > > >> > > > > >> > > Proposed design : > > >> > > > > >> > > 1. Develop AbstractParquetFileReaderOperator that extends > > >> > > from AbstractFileInputOperator. > > >> > > 2. Override openFile() method to instantiate a ParquetReader ( > > >> reader > > >> > > provided by parquet-mr > > >> > project > > >> > > that reads parquet records from a file ) with GroupReadSupport > ( > > >> > records > > >> > > would be read as Group ) . > > >> > > 3. Override readEntity() method to read the records and call > > >> > > convertGroup() method. Derived classes to override > > convertGroup() > > >> > > method > > >> > > to convert Group to any form required by downstream operators. > > >> > > 4. Provide a concrete implementation, ParquetFilePOJOReader > > >> operator > > >> > > that extends from AbstractParquetFileReaderOperator and > > >> > > overrides convertGroup() method to convert a given Group to > POJO. > > >> > > > > >> > > Parquet schema and directory path would be inputs to the base > > >> operator. > > >> > For > > >> > > ParquetFilePOJOReader, pojo class would also be required. > > >> > > > > >> > > Please feel free to let me know your thoughts on this. > > >> > > > > >> > > Thanks, > > >> > > Shubham > > >> > > > > >> > > > >> > > > > > > > > > --001a11c1bcbc9ab2f3052dfe0e54--