49 from daal.data_management
import HomogenNumericTable, FileDataSource, DataSource, InputDataArchive, OutputDataArchive
51 utils_folder = os.path.realpath(os.path.abspath(os.path.dirname(os.path.dirname(__file__))))
52 if utils_folder
not in sys.path:
53 sys.path.insert(0, utils_folder)
54 from utils
import printNumericTable
57 datasetFileName = os.path.join(
'..',
'data',
'batch',
'serialization.csv')
60 def serializeNumericTable(dataTable):
63 dataArch = InputDataArchive()
66 dataTable.serialize(dataArch)
69 length = dataArch.getSizeOfArchive()
72 buffer = np.zeros(length, dtype=np.ubyte)
73 dataArch.copyArchiveToArray(buffer)
78 def deserializeNumericTable(buffer):
81 dataArch = OutputDataArchive(buffer)
84 dataTable = HomogenNumericTable()
87 dataTable.deserialize(dataArch)
92 if __name__ ==
"__main__":
95 dataSource = FileDataSource(
96 datasetFileName, DataSource.doAllocateNumericTable, DataSource.doDictionaryFromContext
100 dataSource.loadDataBlock()
103 dataTable = dataSource.getNumericTable()
106 printNumericTable(dataTable,
"Data before serialization:")
109 buffer = serializeNumericTable(dataTable)
112 restoredDataTable = deserializeNumericTable(buffer)
115 printNumericTable(restoredDataTable,
"Data after deserialization:")