DataFrame creation on Primary Time Index (PTI) tables is partially supported. DataFrame is created when the underlying PTI table is not created with 'timebucket' duration.
Example
Create a PTI table without 'timebucket_duration', using copy_to_sql and then create a DataFrame on it.
>>> load_example_data("sessionize", "sessionize_table")
>>> df3 = DataFrame('sessionize_table')
>>> copy_to_sql(df3, "test_copyto_pti",
timecode_column='clicktime',
columns_list='event')
>>> DataFrame("test_copyto_pti")
TD_TIMECODE partition_id adid productid
event
click 2009-03-19 16:43:26.000000 1199 1 1001
click 2009-07-04 09:18:17.000000 1231 1 1001
click 2009-07-04 09:18:17.000000 1231 1 1001
click 2009-07-16 11:18:16.000000 1039 4 1001
click 2009-07-16 11:18:16.000000 1039 4 1001
click 2009-07-24 04:18:10.000000 1167 2 1001
view 2009-02-09 15:17:59.000000 1263 4 1001
view 2009-03-09 21:17:59.000000 1199 2 1001
view 2009-03-09 21:17:59.000000 1199 2 1001
view 2009-03-13 17:17:59.000000 1071 4 1001
Example
Create a PTI table with 'timebucket_duration', DataFrame creation on the PTI table fails.
>>> load_example_data("sessionize", "sessionize_table")
>>> df3 = DataFrame('sessionize_table')
>>> copy_to_sql(df3, "test_copyto_pti1",
timecode_column='clicktime',
columns_list='event',
timebucket_duration="HOURS(2)")
>>> DataFrame("test_copyto_pti1")
/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/reflection.py:888: SAWarning: index key 'TD_TIMEBUCKET' was not located in columns for table 'test_copyto_pti1'
"columns for table '%s'" % (flavor, c, table_name)
Traceback (most recent call last):
File "/Users/pp186043/Github_Repos/teradataml_repo/pyTeradata/teradataml/dataframe/dataframe.py", line 163, in __init__
self._metaexpr = self._get_metaexpr()
File "/Users/pp186043/Github_Repos/teradataml_repo/pyTeradata/teradataml/dataframe/dataframe.py", line 395, in _get_metaexpr
return _MetaExpression(t, column_order = self.columns)
File "/Users/pp186043/Github_Repos/teradataml_repo/pyTeradata/teradataml/dataframe/sql.py", line 164, in __init__
self.__t = _SQLTableExpression(table, **kw)
File "/Users/pp186043/Github_Repos/teradataml_repo/pyTeradata/teradataml/dataframe/sql.py", line 460, in __init__
raise ValueError('Reflected column names do not match those in DataFrame.columns')
ValueError: Reflected column names do not match those in DataFrame.columns
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/pp186043/Github_Repos/teradataml_repo/pyTeradata/teradataml/dataframe/dataframe.py", line 171, in __init__
raise TeradataMlException(Messages.get_message(MessageCodes.TDMLDF_CREATE_FAIL), MessageCodes.TDMLDF_CREATE_FAIL) from err
teradataml.common.exceptions.TeradataMlException: [Teradata][teradataml](TDML_2010) Failed to create Teradata DataFrame.