This commit is contained in:
Robert Nishihara authored and Wes McKinney committed 2018-02-19 17:58:09 -05:00
1 parent 0fc9ecfddb
commit 31b3cbee39
2 files changed
+19 -6

No files matched your search

+4 -5
View File
@@ -23,12 +23,11 @@ import re
import pandas.core.internals as _int
import numpy as np
import pandas as pd
import pickle
import six
import pyarrow as pa
from pyarrow.compat import PY2, zip_longest # noqa
from pyarrow.compat import builtin_pickle, PY2, zip_longest # noqa
def infer_dtype(column):
@@ -433,7 +432,7 @@ def dataframe_to_serialized_dict(frame):
# If we are dealing with an object array, pickle it instead.
if isinstance(block, _int.ObjectBlock):
block_data['object'] = None
block_data['block'] = pickle.dumps(values)
block_data['block'] = builtin_pickle.dumps(values)
blocks.append(block_data)
@@ -470,8 +469,8 @@ def _reconstruct_block(item):
klass=_int.DatetimeTZBlock,
dtype=dtype)
elif 'object' in item:
block = _int.make_block(pickle.loads(block_arr), placement=placement,
klass=_int.ObjectBlock)
block = _int.make_block(builtin_pickle.loads(block_arr),
placement=placement, klass=_int.ObjectBlock)
else:
block = _int.make_block(block_arr, placement=placement)
+15 -1
View File
@@ -22,7 +22,8 @@ import sys
import numpy as np
from pyarrow.compat import builtin_pickle
from pyarrow.lib import SerializationContext, _default_serialization_context
from pyarrow.lib import (SerializationContext, _default_serialization_context,
frombuffer)
try:
import cloudpickle
@@ -43,6 +44,19 @@ def _deserialize_numpy_array_list(data):
return np.array(data[0], dtype=np.dtype(data[1]))
def _pickle_to_buffer(x):
pickled = builtin_pickle.dumps(x, protocol=builtin_pickle.HIGHEST_PROTOCOL)
return frombuffer(pickled)
def _load_pickle_from_buffer(data):
as_memoryview = memoryview(data)
if six.PY2:
return builtin_pickle.loads(as_memoryview.tobytes())
else:
return builtin_pickle.loads(as_memoryview)
# ----------------------------------------------------------------------
# pandas-specific serialization matters