layout: default title: 0.2.0 Release permalink: /release/0.2.0.html

Apache Arrow 0.2.0 (18 February 2017)

Download

Changelog

Contributors

$ git shortlog -sn apache-arrow-0.1.0..apache-arrow-0.2.0
    73  Wes McKinney
    55  Uwe L. Korn
    16  Julien Le Dem
     4  Bryan Cutler
     4  Nong Li
     2  Christopher C. Aycock
     2  Jingyuan Wang
     2  Kouhei Sutou
     2  Laurent Goujon
     2  Leif Walsh
     1  Emilio Lahr-Vivaz
     1  Holden Karau
     1  Li Jin
     1  Mohamed Zenadi
     1  Peter Hoffmann
     1  Steven Phillips
     1  adeneche
     1  ahnj
     1  vkorukanti

New Features and Improvements

  • ARROW-108 - [C++] Add IPC round trip for union types
  • ARROW-189 - C++: Use ExternalProject to build thirdparty dependencies
  • ARROW-191 - Python: Provide infrastructure for manylinux1 wheels
  • ARROW-221 - Add switch for writing Parquet 1.0 compatible logical types
  • ARROW-227 - [C++/Python] Hook arrow_io generic reader / writer interface into arrow_parquet
  • ARROW-228 - [Python] Create an Arrow-cpp-compatible interface for reading bytes from Python file-like objects
  • ARROW-243 - [C++] Add “driver” option to HdfsClient to choose between libhdfs and libhdfs3 at runtime
  • ARROW-268 - [C++] Flesh out union implementation to have all required methods for IPC
  • ARROW-303 - [C++] Also build static libraries for leaf libraries
  • ARROW-312 - [Python] Provide Python API to read/write the Arrow IPC file format
  • ARROW-317 - [C++] Implement zero-copy Slice method on arrow::Buffer that retains reference to parent
  • ARROW-327 - [Python] Remove conda builds from Travis CI processes
  • ARROW-328 - [C++] Return shared_ptr by value instead of const-ref?
  • ARROW-33 - C++: Implement zero-copy array slicing
  • ARROW-330 - [C++] CMake functions to simplify shared / static library configuration
  • ARROW-332 - [Python] Add helper function to convert RecordBatch to pandas.DataFrame
  • ARROW-333 - Make writers update their internal schema even when no data is written.
  • ARROW-335 - Improve Type apis and toString() by encapsulating flatbuffers better
  • ARROW-336 - Run Apache Rat in Travis builds
  • ARROW-338 - [C++] Refactor IPC vector “loading” and “unloading” to be based on cleaner visitor pattern
  • ARROW-350 - Add Kerberos support to HDFS shim
  • ARROW-353 - Arrow release 0.2
  • ARROW-355 - Add tests for serialising arrays of empty strings to Parquet
  • ARROW-356 - Add documentation about reading Parquet
  • ARROW-359 - Need to document ARROW_LIBHDFS_DIR
  • ARROW-360 - C++: Add method to shrink PoolBuffer using realloc
  • ARROW-361 - Python: Support reading a column-selection from Parquet files
  • ARROW-363 - Set up Java/C++ integration test harness
  • ARROW-365 - Python: Provide Array.to_pandas()
  • ARROW-366 - [java] implement Dictionary vector
  • ARROW-367 - [java] converter csv/json <=> Arrow file format for Integration tests
  • ARROW-368 - Document use of LD_LIBRARY_PATH when using Python
  • ARROW-369 - [Python] Add ability to convert multiple record batches at once to pandas
  • ARROW-372 - Create JSON arrow file format for integration tests
  • ARROW-373 - [C++] Implement C++ version of JSON file format for testing
  • ARROW-374 - Python: clarify unicode vs. binary in API
  • ARROW-377 - Python: Add support for conversion of Pandas.Categorical
  • ARROW-379 - Python: Use setuptools_scm/setuptools_scm_git_archive to provide the version number
  • ARROW-380 - [Java] optimize null count when serializing vectors.
  • ARROW-381 - [C++] Simplify primitive array type builders to use a default type singleton
  • ARROW-382 - Python: Extend API documentation
  • ARROW-383 - [C++] Implement C++ version of ARROW-367 integration test validator
  • ARROW-389 - Python: Write Parquet files to pyarrow.io.NativeFile objects
  • ARROW-394 - Add integration tests for boolean, list, struct, and other basic types
  • ARROW-396 - Python: Add pyarrow.schema.Schema.equals
  • ARROW-409 - Python: Change pyarrow.Table.dataframe_from_batches API to create Table instead
  • ARROW-410 - [C++] Add Flush method to arrow::io::OutputStream
  • ARROW-411 - [Java] Move Intergration.compare and Intergration.compareSchemas to a public utils class
  • ARROW-415 - C++: Add Equals implementation to compare Tables
  • ARROW-416 - C++: Add Equals implementation to compare Columns
  • ARROW-417 - C++: Add Equals implementation to compare ChunkedArrays
  • ARROW-418 - [C++] Consolidate array container and builder code, remove arrow/types
  • ARROW-419 - [C++] Promote util/{status.h, buffer.h, memory-pool.h} to top level of arrow/ source directory
  • ARROW-423 - C++: Define BUILD_BYPRODUCTS in external project to support non-make CMake generators
  • ARROW-425 - Python: Expose a C function to convert arrow::Table to pyarrow.Table
  • ARROW-426 - Python: Conversion from pyarrow.Array to a Python list
  • ARROW-427 - [C++] Implement dictionary-encoded array container
  • ARROW-428 - [Python] Deserialize from Arrow record batches to pandas in parallel using a thread pool
  • ARROW-430 - Python: Better version handling
  • ARROW-432 - [Python] Avoid unnecessary memory copy in to_pandas conversion by using low-level pandas internals APIs
  • ARROW-438 - [Python] Concatenate Table instances with equal schemas
  • ARROW-440 - [C++] Support pkg-config
  • ARROW-441 - [Python] Expose Arrow's file and memory map classes as NativeFile subclasses
  • ARROW-442 - [Python] Add public Python API to inspect Parquet file metadata
  • ARROW-444 - [Python] Avoid unnecessary memory copies from use of PyBytes_* C APIs
  • ARROW-449 - Python: Conversion from pyarrow.{Table,RecordBatch} to a Python dict
  • ARROW-450 - Python: Fixes for PARQUET-818
  • ARROW-456 - C++: Add jemalloc based MemoryPool
  • ARROW-457 - Python: Better control over memory pool
  • ARROW-458 - Python: Expose jemalloc MemoryPool
  • ARROW-461 - [Python] Implement conversion between arrow::DictionaryArray and pandas.Categorical
  • ARROW-463 - C++: Support jemalloc 4.x
  • ARROW-466 - C++: ExternalProject for jemalloc
  • ARROW-467 - [Python] Run parquet-cpp unit tests in Travis CI
  • ARROW-468 - Python: Conversion of nested data in pd.DataFrames to/from Arrow structures
  • ARROW-470 - [Python] Add “FileSystem” abstraction to access directories of files in a uniform way
  • ARROW-471 - [Python] Enable ParquetFile to pass down separately-obtained file metadata
  • ARROW-472 - [Python] Expose parquet::{SchemaDescriptor, ColumnDescriptor}::Equals
  • ARROW-474 - Create an Arrow streaming file fomat
  • ARROW-475 - [Python] High level support for reading directories of Parquet files (as a single Arrow table) from supported file system interfaces
  • ARROW-476 - [Integration] Add integration tests for Binary / Varbytes type
  • ARROW-477 - [Java] Add support for second/microsecond/nanosecond timestamps in-memory and in IPC/JSON layer
  • ARROW-478 - [Python] Accept a PyBytes object in the pyarrow.io.BufferReader ctor
  • ARROW-479 - Python: Test for expected schema in Pandas conversion
  • ARROW-484 - Add more detail about what of technology can be found in the Arrow implementations to README
  • ARROW-485 - [Java] Users are required to initialize VariableLengthVectors.offsetVector before calling VariableLengthVectors.mutator.getSafe
  • ARROW-490 - Python: Update manylinux1 build scripts
  • ARROW-495 - [C++] Add C++ implementation of streaming serialized format
  • ARROW-497 - [Java] Integration test harness for streaming format
  • ARROW-498 - [C++] Integration test harness for streaming format
  • ARROW-503 - [Python] Interface to streaming binary format
  • ARROW-506 - Implement Arrow Echo server for integration testing
  • ARROW-508 - [C++] Make file/memory-mapped file interfaces threadsafe
  • ARROW-509 - [Python] Add support for PARQUET-835 (parallel column reads)
  • ARROW-512 - C++: Add method to check for primitive types
  • ARROW-514 - [Python] Accept pyarrow.io.Buffer as input to StreamReader, FileReader classes
  • ARROW-515 - [Python] Add StreamReader/FileReader methods that read all record batches as a Table
  • ARROW-521 - [C++/Python] Track peak memory use in default MemoryPool
  • ARROW-524 - [java] provide apis to access nested vectors and buffers
  • ARROW-525 - Python: Add more documentation to the package
  • ARROW-527 - clean drill-module.conf file
  • ARROW-529 - Python: Add jemalloc and Python 3.6 to manylinux1 build
  • ARROW-531 - Python: Document jemalloc, extend Pandas section, add Getting Involved
  • ARROW-538 - [C++] Set up AddressSanitizer (ASAN) builds
  • ARROW-546 - Python: Account for changes in PARQUET-867
  • ARROW-547 - [Python] Expose Array::Slice and RecordBatch::Slice
  • ARROW-553 - C++: Faster valid bitmap building
  • ARROW-558 - Add KEYS files
  • ARROW-81 - [Format] Add a Category logical type (distinct from dictionary-encoding)
  • ARROW-96 - C++: API documentation using Doxygen
  • ARROW-97 - Python: API documentation via sphinx-apidoc

Bug Fixes

  • ARROW-112 - [C++] Style fix for constants/enums
  • ARROW-202 - [C++] Integrate with appveyor ci for windows support and get arrow building on windows
  • ARROW-220 - [C++] Build conda artifacts in a build environment with better cross-linux ABI compatibility
  • ARROW-224 - [C++] Address static linking of boost dependencies
  • ARROW-230 - Python: Do not name modules like native ones (i.e. rename pyarrow.io)
  • ARROW-239 - [Python] HdfsFile.read called with no arguments should read remainder of file
  • ARROW-261 - [C++] Refactor BinaryArray/StringArray classes to not inherit from ListArray
  • ARROW-275 - Add tests for UnionVector in Arrow File
  • ARROW-294 - [C++] Do not use fopen / fclose / etc. methods for memory mapped file implementation
  • ARROW-322 - [C++] Do not build HDFS IO interface optionally
  • ARROW-323 - [Python] Opt-in to PyArrow parquet build rather than skipping silently on failure
  • ARROW-334 - [Python] OS X rpath issues on some configurations
  • ARROW-337 - UnionListWriter.list() is doing more than it should, this can cause data corruption
  • ARROW-339 - Make merge_arrow_pr script work with Python 3
  • ARROW-340 - [C++] Opening a writeable file on disk that already exists does not truncate to zero
  • ARROW-342 - Set Python version on release
  • ARROW-345 - libhdfs integration doesn't work for Mac
  • ARROW-346 - Python API Documentation
  • ARROW-348 - [Python] CMake build type should be configurable on the command line
  • ARROW-349 - Six is missing as a requirement in the python setup.py
  • ARROW-351 - Time type has no unit
  • ARROW-354 - Connot compare an array of empty strings to another
  • ARROW-357 - Default Parquet chunk_size of 64k is too small
  • ARROW-358 - [C++] libhdfs can be in non-standard locations in some Hadoop distributions
  • ARROW-362 - Python: Calling to_pandas on a table read from Parquet leaks memory
  • ARROW-371 - Python: Table with null timestamp becomes float in pandas
  • ARROW-375 - columns parameter in parquet.read_table() raises KeyError for valid column
  • ARROW-384 - Align Java and C++ RecordBatch data and metadata layout
  • ARROW-386 - [Java] Respect case of struct / map field names
  • ARROW-387 - [C++] arrow::io::BufferReader does not permit shared memory ownership in zero-copy reads
  • ARROW-390 - C++: CMake fails on json-integration-test with ARROW_BUILD_TESTS=OFF
  • ARROW-392 - Fix string/binary integration tests
  • ARROW-393 - [JAVA] JSON file reader fails to set the buffer size on String data vector
  • ARROW-395 - Arrow file format writes record batches in reverse order.
  • ARROW-398 - [Java] Java file format requires bitmaps of all 1's to be written when there are no nulls
  • ARROW-399 - [Java] ListVector.loadFieldBuffers ignores the ArrowFieldNode length metadata
  • ARROW-400 - [Java] ArrowWriter writes length 0 for Struct types
  • ARROW-401 - [Java] Floating point vectors should do an approximate comparison in integration tests
  • ARROW-402 - [Java] “refCnt gone negative” error in integration tests
  • ARROW-403 - [JAVA] UnionVector: Creating a transfer pair doesn't transfer the schema to destination vector
  • ARROW-404 - [Python] Closing an HdfsClient while there are still open file handles results in a crash
  • ARROW-405 - [C++] Be less stringent about finding include/hdfs.h in HADOOP_HOME
  • ARROW-406 - [C++] Large HDFS reads must utilize the set file buffer size when making RPCs
  • ARROW-408 - [C++/Python] Remove defunct conda recipes
  • ARROW-414 - [Java] “Buffer too large to resize to ...” error
  • ARROW-420 - Align Date implementation between Java and C++
  • ARROW-421 - [Python] Zero-copy buffers read by pyarrow::PyBytesReader must retain a reference to the parent PyBytes to avoid premature garbage collection issues
  • ARROW-422 - C++: IPC should depend on rapidjson_ep if RapidJSON is vendored
  • ARROW-429 - git-archive SHA-256 checksums are changing
  • ARROW-433 - [Python] Date conversion is locale-dependent
  • ARROW-434 - Segfaults and encoding issues in Python Parquet reads
  • ARROW-435 - C++: Spelling mistake in if(RAPIDJSON_VENDORED)
  • ARROW-437 - [C++] clang compiler warnings from overridden virtual functions
  • ARROW-445 - C++: arrow_ipc is built before arrow/ipc/Message_generated.h was generated
  • ARROW-447 - Python: Align scalar/pylist string encoding with pandas' one.
  • ARROW-455 - [C++] BufferOutputStream dtor does not call Close()
  • ARROW-469 - C++: Add option so that resize doesn't decrease the capacity
  • ARROW-481 - [Python] Fix Python 2.7 regression in patch for PARQUET-472
  • ARROW-486 - [C++] arrow::io::MemoryMappedFile can't be casted to arrow::io::FileInterface
  • ARROW-487 - Python: ConvertTableToPandas segfaults if ObjectBlock::Write fails
  • ARROW-494 - [C++] When MemoryMappedFile is destructed, memory is unmapped even if buffer referecnes still exist
  • ARROW-499 - Update file serialization to use streaming serialization format
  • ARROW-505 - [C++] Fix compiler warnings in release mode
  • ARROW-511 - [Python] List[T] conversions not implemented for single arrays
  • ARROW-513 - [C++] Fix Appveyor build
  • ARROW-519 - [C++] Missing vtable in libarrow.dylib on Xcode 6.4
  • ARROW-523 - Python: Account for changes in PARQUET-834
  • ARROW-533 - [C++] arrow::TimestampArray / TimeArray has a broken constructor
  • ARROW-535 - [Python] Add type mapping for NPY_LONGLONG
  • ARROW-537 - [C++] StringArray/BinaryArray comparisons may be incorrect when values with non-zero length are null
  • ARROW-540 - [C++] Fix build in aftermath of ARROW-33
  • ARROW-543 - C++: Lazily computed null_counts counts number of non-null entries
  • ARROW-544 - [C++] ArrayLoader::LoadBinary fails for length-0 arrays
  • ARROW-545 - [Python] Ignore files without .parq or .parquet prefix when reading directory of files
  • ARROW-548 - [Python] Add nthreads option to pyarrow.Filesystem.read_parquet
  • ARROW-551 - C++: Construction of Column with nullptr Array segfaults
  • ARROW-556 - [Integration] Can not run Integration tests if different cpp build path
  • ARROW-561 - Update java & python dependencies to improve downstream packaging experience