python珍宝数据api库

td-client的Python项目详细描述


python的珍宝数据api库

Build StatusBuild statusCoverage StatusCode HealthPyPI version

python的珍宝数据api库

要求

td-client支持以下版本的python。

  • Python2.7+
  • Python3.4+
  • 皮比

安装

您可以安装PyPI中的版本。

$ pip install td-client

最好安装certifi以启用ssl证书验证。

$ pip install certifi

示例

请参阅Treasure Data Documentation上的示例。

列出作业

如果没有通过传递给apikey=参数的tdclient.Client给出,则将从环境变量TD_API_KEY读取珍宝数据API密钥。

默认情况下使用珍宝数据API终结点https://api.treasuredata.com。您可以使用环境变量TD_API_SERVER覆盖它,然后可以通过传递给tdclient.Clientendpoint=参数覆盖它。可以找到可用的宝藏数据站点和相应的api端点列表here

importtdclientwithtdclient.Client()astd:forjobintd.jobs():print(job.job_id)

运行作业

在宝藏数据上运行作业。

importtdclientwithtdclient.Client()astd:job=td.query("sample_datasets","SELECT COUNT(1) FROM www_access",type="hive")job.wait()forrowinjob.result():print(repr(row))

通过dbapi2运行作业

td client python实现了PEP 0249python数据库api v2.0。 可以将td client python与支持数据库api(如pandas)的外部库一起使用。

importpandasimporttdclientdefon_waiting(cursor):print(cursor.job_status())withtdclient.connect(db="sample_datasets",type="presto",wait_callback=on_waiting)astd:data=pandas.read_sql("SELECT symbol, COUNT(1) AS c FROM nasdaq GROUP BY symbol",td)print(repr(data))

我们为熊猫提供了另一个名为pandas-td的软件包,具有一些高级功能。 如果您需要做一些复杂的事情,比如将结果数据导出到珍宝数据,打印作业的 长时间执行的进度等。

导入数据

以流方式将数据导入珍宝数据,就像fluentd所做的那样。

importsysimporttdclientwithtdclient.Client()astd:forfile_nameinsys.argv[:1]:td.import_file("mydb","mytbl","csv",file_name)

批量导入

批量导入宝藏数据。

from__future__importprint_functionimportsysimporttdclientimporttimeimportwarningsiflen(sys.argv)<=1:sys.exit(0)withtdclient.Client()astd:session_name="session-%d"%(int(time.time()),)bulk_import=td.create_bulk_import(session_name,"mydb","mytbl")try:forfile_nameinsys.argv[1:]:part_name="part-%s"%(file_name,)bulk_import.upload_file(part_name,"json",file_name)bulk_import.freeze()except:bulk_import.delete()raisebulk_import.perform(wait=True)if0<bulk_import.error_records:warnings.warn("detected %d error records."%(bulk_import.error_records,))if0<bulk_import.valid_records:print("imported %d records."%(bulk_import.valid_records,))else:raise(RuntimeError("no records have been imported: %s"%(repr(bulk_import.name),)))bulk_import.commit(wait=True)bulk_import.delete()

开发

运行测试

运行测试。

$ python setup.py test

运行测试(TOX)

您可以对所有受支持的python版本运行测试。我建议您安装pyenv来管理Python。

$ pyenv shell system
$ for version in $(cat .python-version);do[ -d "$(pyenv root)/versions/${version}"]|| pyenv install "${version}";done
$ pyenv shell --unset

安装tox

$ pip install tox

然后,运行tox

$ tox

释放

释放到pypi。

$ python setup.py bdist_wheel --universal sdist upload

版本历史记录

CHANGELOG.md

许可证

apache软件许可证,2.0版

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Android:在ListView上使用setOnItemClickListener   使用Netbeans 7.0连接到SQL Server的java正在挂起   java Spring3依赖项注入不适用于mule   java Flink SQL结果字段与LocalDateTime上请求的类型错误不匹配   java找不到文件的结尾   考虑到NamingStrategy,java有没有办法将字符串转换为JsonNode?   使用Netbeans/ant部署java(命令行)应用程序   java如何修复Spring引导多部分上载中的“所需请求部分不存在”   java在应用程序启动时通过引用获取映射未知目标实体属性异常   java形状旋转问题Java2d   Weblogic服务器上的java ExecuteAndWaitInterceptor问题   JavaSpringBoot:project将图像保存在错误的路径中,并且在使用IDEIntellji打开时不显示图像   类向java接口添加方法   Swing组件上的Java 7泛型   sql server如何从java获取用户名。sql。联系   java如何检查该行是否与正则表达式(regex)冲突?   java如何在spring引导安全中为计数失败登录设置验证登录为false   图像如何在Java中使PNG的白色透明?