__main__.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import argparse
  2. import logging
  3. import sys
  4. import parquet
  5. def setup_logging(options):
  6. level = logging.DEBUG if options.debug else logging.WARNING
  7. logging.basicConfig(level=level)
  8. def main(argv=None):
  9. argv = argv or sys.argv[1:]
  10. parser = argparse.ArgumentParser(description='Process some integers.')
  11. parser.add_argument('--metadata', action='store_true',
  12. help='show metadata on file')
  13. parser.add_argument('--row-group-metadata', action='store_true',
  14. help="show per row group metadata")
  15. parser.add_argument('--no-data', action='store_true',
  16. help="don't dump any data from the file")
  17. parser.add_argument('--limit', action='store', type=int, default=-1,
  18. help='max records to output')
  19. parser.add_argument('--col', action='append', type=str,
  20. help='only include this column (can be '
  21. 'specified multiple times)')
  22. parser.add_argument('--no-headers', action='store_true',
  23. help='skip headers in output (only applies if '
  24. 'format=csv)')
  25. parser.add_argument('--format', action='store', type=str, default='csv',
  26. help='format for the output data. can be csv or json.')
  27. parser.add_argument('--debug', action='store_true',
  28. help='log debug info to stderr')
  29. parser.add_argument('file',
  30. help='path to the file to parse')
  31. args = parser.parse_args(argv)
  32. setup_logging(args)
  33. if args.metadata:
  34. parquet.dump_metadata(args.file, args.row_group_metadata)
  35. if not args.no_data:
  36. parquet.dump(args.file, args)
  37. if __name__ == '__main__':
  38. main()