我正在尝试运行一个容器,其中我需要将网络驱动程序用作“主机”而不是“桥接器”。我在 Centos 机器上运行它,我的 docker-compose.yml 是
version: '3.4'
services:
testContainer:
build:
context: .
args:
HADOOP_VERSION: 2.6.0
HIVE_VERSION: 1.1.0
image: testcontainer
container_name: testcontainer
hostname: testcontainer
ports:
- 9200:9200
- 9300:9300
- 5601:5601
- 9001:9001
ulimits:
memlock:
soft: -1
hard: -1
networks:
- elknet
networks:
elknet:
driver: host
Run Code Online (Sandbox Code Playgroud)
但是当我触发“ docker-compose up ”时出现以下错误:
错误:仅允许一个“主机”网络实例
任何人都可以建议我如何使用 docker-compose.yml 使用主机网络。
另请注意,如果我按照@larsks的建议使用network_host,我仍然收到错误
version: '3.4'
services:
testContainer:
build:
context: .
args:
HADOOP_VERSION: 2.6.0
HIVE_VERSION: 1.1.0
image: testcontainer
container_name: testcontainer
hostname: testcontainer
ports:
- 9200:9200
- 9300:9300
- 5601:5601
- …Run Code Online (Sandbox Code Playgroud) 我按如下方式动态生成查询字符串并将其传递给 selectExpr()。
queryString=''''category_id as cat_id','category_department_id as cat_dpt_id','category_name as cat_name''''
df.selectExpr(queryString)
Run Code Online (Sandbox Code Playgroud)
根据文件
selectExpr(*expr) :投影一组 SQL 表达式并返回一个新的 DataFrame。这是 select() 的一个变体,它接受 SQL 表达式。
问题在于变量“queryString”被视为单个字符串而不是三个单独的列(正确的是)。以下是错误:
:org.apache.spark.sql.catalyst.parser.ParseException:…………
== SQL ==
“category_id 作为 cat_id”、“category_department_id 作为 cat_dpt_id”、“category_name 作为 cat_name”
------------------------^^^
有什么方法可以将动态生成的“queryString”作为 selectExpr() 的参数传递。