Python 将数据从主机加载到docker配置单元容器

Python 将数据从主机加载到docker配置单元容器,python,hadoop,docker,hive,Python,Hadoop,Docker,Hive,我的主机上有一个csv文件,我有一个docker虚拟机。我想将主机中的csv文件中的数据上载到VM。我正在使用python的hive_服务库连接并进行查询。然而,我被困在如何将数据放入虚拟机中。 例如,下面的脚本连接并能够查询配置单元,但在第二次查询时失败。我需要将smpl.txt从主机上传到docker vm import sys from hive_service import ThriftHive from hive_service.ttypes import HiveServerExc

我的主机上有一个csv文件,我有一个docker虚拟机。我想将主机中的csv文件中的数据上载到VM。我正在使用python的hive_服务库连接并进行查询。然而,我被困在如何将数据放入虚拟机中。 例如,下面的脚本连接并能够查询配置单元,但在第二次查询时失败。我需要将smpl.txt从主机上传到docker vm

import sys

from hive_service import ThriftHive
from hive_service.ttypes import HiveServerException
from thrift import Thrift
from thrift.transport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol

try:
  print "1111"
  transport = TSocket.TSocket("192.168.99.100", 10000)
  transport = TTransport.TBufferedTransport(transport)
  protocol = TBinaryProtocol.TBinaryProtocol(transport)
  print "2222"
  client = ThriftHive.Client(protocol)
  transport.open()
  print "3333"

  client.execute("CREATE TABLE names (name string, value int) ROW FORMAT DELIMITED FIELDS TERMINATED BY ','")
  client.execute("LOAD DATA LOCAL INPATH './smpl.txt' OVERWRITE INTO TABLE names")
  # client.execute("SELECT * FROM orders")
  # while (1):
  #   row = client.fetchOne()
  #   if (row == None):
  #     break
  #   print row

  #client.execute("SELECT * FROM r")
  # print client.fetchAll()
  print "4444"
  transport.close()
except Thrift.TException, tx:
  print '%s' % (tx.message)

如果该文件必须已经在DOCKER VM中,您可以考虑使用,它允许将本地文件复制到正在运行的容器。

使用类似的库,这将转化为:

c = docker.Client(base_url='unix://var/run/docker.sock',
                  version='1.12', timeout=10)
c.copy(container, resource)

您知道将数据/文件复制到配置单元容器中的何处以及如何创建相应的数据库/表吗?请看,谢谢: