python - 在DolphinDB的Python API中,使用s.loadTable和s.table加载内存表有什么区别?

标签 python api datatable dolphindb

t1 = s.loadTable(tableName="test")
t2 = s.table(data='test')

上面的两行都加载了“测试”表。有什么区别?

最佳答案

这两种方法都是通过构造一个Table对象来加载指定的表格。区别如下:

  • loadTable 不支持垃圾回收(自动内存 回收分配的表类的管理机制 内存不再引用)而 table 是。
  • table 还接受本地 pandas DataFrame 作为输入参数。 这是一个例子:

使用以下脚本定义函数 createDemonDataFrame() 以创建 pandas DataFrame。

import pandas as pd

def createDemoDataFrame():
    data = {'cid': np.array([1, 2, 3], dtype=np.int32),
            'cbool': np.array([True, False, np.nan], dtype=np.bool),
            'cchar': np.array([1, 2, 3], dtype=np.int8),
            'cshort': np.array([1, 2, 3], dtype=np.int16),
            'cint': np.array([1, 2, 3], dtype=np.int32),
            'clong': np.array([0, 1, 2], dtype=np.int64),
            'cdate': np.array(['2019-02-04', '2019-02-05', ''], dtype='datetime64[D]'),
            'cmonth': np.array(['2019-01', '2019-02', ''], dtype='datetime64[M]'),
            'ctime': np.array(['2019-01-01 15:00:00.706', '2019-01-01 15:30:00.706', ''], dtype='datetime64[ms]'),
            'cminute': np.array(['2019-01-01 15:25', '2019-01-01 15:30', ''], dtype='datetime64[m]'),
            'csecond': np.array(['2019-01-01 15:00:30', '2019-01-01 15:30:33', ''], dtype='datetime64[s]'),
            'cdatetime': np.array(['2019-01-01 15:00:30', '2019-01-02 15:30:33', ''], dtype='datetime64[s]'),
            'ctimestamp': np.array(['2019-01-01 15:00:00.706', '2019-01-01 15:30:00.706', ''], dtype='datetime64[ms]'),
            'cnanotime': np.array(['2019-01-01 15:00:00.80706', '2019-01-01 15:30:00.80706', ''], dtype='datetime64[ns]'),
            'cnanotimestamp': np.array(['2019-01-01 15:00:00.80706', '2019-01-01 15:30:00.80706', ''], dtype='datetime64[ns]'),
            'cfloat': np.array([2.1, 2.658956, np.NaN], dtype=np.float32),
            'cdouble': np.array([0., 47.456213, np.NaN], dtype=np.float64),
            'csymbol': np.array(['A', 'B', '']),
            'cstring': np.array(['abc', 'def', ''])}
    return pd.DataFrame(data)

调用table将名为“testDataFrame”的DataFrame上传到DolphinDB服务器。调用loadTable查看上传表的数据。

dt = s.table(data=createDemoDataFrame(), tableAliasName="testDataFrame")
print(s.loadTable("testDataFrame").toDF())

# output
   cid  cbool  cchar  cshort  cint  ...             cnanotimestamp    cfloat    cdouble csymbol cstring
0    1   True      1       1     1  ... 2019-01-01 15:00:00.807060  2.100000   0.000000       A     abc
1    2  False      2       2     2  ... 2019-01-01 15:30:00.807060  2.658956  47.456213       B     def
2    3   True      3       3     3  ...                        NaT       NaN        NaN

关于python - 在DolphinDB的Python API中,使用s.loadTable和s.table加载内存表有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74093435/

相关文章:

javascript - 使用 AJAX 调用填充数据表

python - Django allauth 覆盖 clean_username 和 clean_email 函数

javascript - 处理 API 设计和 OO 糖

javascript - Xpages-数据表 : On Click Event on Link if the Link has a specific label value

angularjs - 无需用户身份验证(无凭据)的安全 REST API

python - Django REST 自定义错误

jquery - 无法重新初始化数据表 - 数据表的动态数据

python - 如何使用关键字在 nvidia-smi 中使用 PID 杀死 GPU 上的进程?

python mechanize - 无法提交登录表单

python绝对XPath返回空列表,通用查询更好吗?