这可能是一个非常愚蠢的问题,但我无法通过 Google 找到答案。我编写了一个简单的 pyspark ETL 脚本,该脚本读取 CSV 并将其写入 Parquet,如下所示:
spark = SparkSession.builder.getOrCreate()
sqlContext = SQLContext(spark.sparkContext)
df = sqlContext.read.csv(input_filename)
df.write.parquet(output_path)
Run Code Online (Sandbox Code Playgroud)
为了运行它,我在 Docker 中启动了一个本地 Spark 集群:
$ docker run --network=host jupyter/pyspark-notebook
Run Code Online (Sandbox Code Playgroud)
我运行 Python 脚本,它连接到这个本地 Spark 集群,一切都按预期工作。
现在我想在远程 Spark 集群 (AWS EMR) 上运行相同的脚本。我可以在初始化 Spark 上下文时在某处指定一个远程 IP 地址吗?还是我误解了 Spark 的工作原理?
我正在尝试计算在 S3 上对 Parquet 数据进行分区时的最佳文件大小。AWS 建议避免文件小于 128MB。但是否也有建议的最大文件大小?
Databricks 建议文件大小应在 1GB 左右,但我不清楚这是否仅适用于 HDFS。我知道最佳文件大小取决于 HDFS 块大小。然而,S3 没有任何块大小的概念。
有什么想法吗?
通常,当客户点击电子商务网站上的“结账”按钮时,他们会经历如下结账流程:
客户在结帐的第 4 步单击“确认”后,我们通常希望创建一些数据库对象,包括:
OrderInvoice(与相应的 有关系Order)Payment(与相应的 有关系Invoice)我的第一个想法是应该发生这样的事情:
Order使用订单详细信息创建一个对象Invoice包含订单总成本的对象Payment对象status=PENDING并尝试向信用卡收费Payment到status=SUCCESS并将客户重定向到“谢谢”页面Payment至status=FAIL与回报客户步骤4的错误消息显示但是,这个流程有一个问题:如果收费失败,客户返回第4步,如果再次点击“确认”重新尝试付款Order,Invoice则会生成一个副本。
为避免这种情况,我们可以修改此流程以仅创建一个新流程Order,Invoice如果它们尚不存在。然而,这样做的问题是用户可能会点击回到第 1 步,更改订单,然后再次尝试付款。在这种情况下,Order和Invoice对象将不正确,因为顺序已更改。
所以为了避免这种情况,我们可以改为更新现有的Order,Invoice如果它们已经存在,但这现在看起来过于复杂,并且也打破了发票应该是不可变的通用约定。
对此建模的最佳方法是什么?
我遵循Celery 4.0.0的"Django的第一步"教程:http: //docs.celeryproject.org/en/latest/django/first-steps-with-django.html
这一切都按预期工作.但是,如果我尝试将传输从AMQP更改为Django ORM,则将其添加到以下结尾settings.py:
CELERY_BROKER_URL = 'django://'
Run Code Online (Sandbox Code Playgroud)
然后当我运行worker process(celery -A proj worker)时,我收到一个错误:
Traceback (most recent call last):
File "/home/ac/src/proj/.pyenv/bin/celery", line 11, in <module>
sys.exit(main())
File "/home/ac/src/proj/.pyenv/local/lib/python2.7/site-packages/celery/__main__.py", line 14, in main
_main()
File "/home/ac/src/proj/.pyenv/local/lib/python2.7/site-packages/celery/bin/celery.py", line 326, in main
cmd.execute_from_commandline(argv)
File "/home/ac/src/proj/.pyenv/local/lib/python2.7/site-packages/celery/bin/celery.py", line 488, in execute_from_commandline
super(CeleryCommand, self).execute_from_commandline(argv)))
File "/home/ac/src/proj/.pyenv/local/lib/python2.7/site-packages/celery/bin/base.py", line 278, in execute_from_commandline
return self.handle_argv(self.prog_name, argv[1:])
File "/home/ac/src/proj/.pyenv/local/lib/python2.7/site-packages/celery/bin/celery.py", line 480, in handle_argv
return self.execute(command, argv)
File "/home/ac/src/proj/.pyenv/local/lib/python2.7/site-packages/celery/bin/celery.py", line 412, in execute
).run_from_argv(self.prog_name, argv[1:], command=argv[0]) …Run Code Online (Sandbox Code Playgroud) 我必须遗漏一些简单的东西,但我看不到它.我正在使用Bootstrap tagsinput插件,我试图按照这里的一些例子:http: //bootstrap-tagsinput.github.io/bootstrap-tagsinput/examples/
这是我的代码:
<html>
<head>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/bootstrap.tagsinput/0.4.2/bootstrap-tagsinput.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/bootstrap.tagsinput/0.4.2/bootstrap-tagsinput.min.js"></script>
</head>
<body>
<input id="cities" class="form-control" value="New York,London" data-role="tagsinput" type="text">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script>
$(function() {
$('#cities').tagsinput({
maxTags: 3
});
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我收到以下Javascript错误:
tagsinput.html:15 Uncaught TypeError: $(...).tagsinput is not a function
Run Code Online (Sandbox Code Playgroud)
我尝试删除这个SO答案中的data-role="tagsinput"建议,但输入变为常规文本框,但仍然会发生异常.
我究竟做错了什么?
我正在尝试几个不同的Python SOAP服务器库,我似乎无法让spyne的'hello world'示例工作:https: //github.com/arskom/spyne/blob/master/examples/ helloworld_soap.py
当我运行它时,它启动一个SOAP服务器,我可以在浏览器中成功查看WSDL http://localhost:7789/?wsdl.但是,当我尝试连接suds客户端时,我得到一个例外:
Python 2.7.3 (default, Aug 1 2012, 05:14:39)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from suds.client import Client
>>> c = Client('http://localhost:7789/?wsdl')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/acordiner/ve/local/lib/python2.7/site-packages/suds/client.py", line 112, in __init__
self.wsdl = reader.open(url)
File "/home/acordiner/ve/local/lib/python2.7/site-packages/suds/reader.py", line 152, in open
d = self.fn(url, self.options)
File "/home/acordiner/ve/local/lib/python2.7/site-packages/suds/wsdl.py", line 158, in __init__
self.resolve()
File "/home/acordiner/ve/local/lib/python2.7/site-packages/suds/wsdl.py", …Run Code Online (Sandbox Code Playgroud) python ×2
amazon-emr ×1
amazon-s3 ×1
apache-spark ×1
celery ×1
django ×1
e-commerce ×1
javascript ×1
jquery ×1
parquet ×1
pyspark ×1
soap ×1
spyne ×1
suds ×1