我的第一篇文章,我是Python和Apache的新手,所以请放轻松我.我在conda环境中有一个Python Web应用程序,使用Flask可以很好地提供内容.现在我需要用Apache而不是Flask来提供所有服务.我可以让Apache使用mod_wsgi来运行Python,但只能使用virtualenv.我尝试使用Anaconda安装virtualenv,但我收到警告说这样的设置不受支持且不推荐.所以我的问题是:
如何设置Apache以在conda环境中运行我的应用程序?
这里有一个关于使用虚拟环境的部分,它说我需要在我的wsgi文件中输入一行,显示在哪里可以找到activate_this.py.virtualenv虚拟环境有activate_this.py,但conda环境没有.似乎没有激活虚拟环境的正确指令,我只是在浏览器中收到错误500并在我的httpd error_log中导入"导入错误:没有名为flask的模块".
这是在我的httpd.conf文件中:
<VirtualHost *:80>
DocumentRoot /var/www
WSGIScriptAlias / var/www/tsm.wsgi
<Directory /var/www/tsm>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
这是tsm.wsgi:
import sys
import site
site.addsitedir('~/.conda/envs/tsm/lib/python2.7/site-packages')
sys.path.insert(0, '/var/www/tsm/server/time_series_machine')
sys.stdout = sys.stderr
from app import app as application
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?感谢您的任何帮助,您可以提供.
更新:似乎我的错误可能是因为我安装了Spark和/或Hive.在Databricks(托管)笔记本中使用窗口函数似乎非常简单.我需要弄清楚如何在本地设置它.
我有一个Spark DataFrame,我需要使用一个Window函数.*我尝试按照这里的说明,但我遇到了一些问题.
设置我的环境:
import os
import sys
import datetime as dt
os.environ["SPARK_HOME"] = '/usr/bin/spark-1.5.2'
os.environ["PYTHONPATH"] = '/usr/bin/spark-1.5.2/python/lib/py4j-0.8.2.1-src.zip'
sys.path.append('/usr/bin/spark-1.5.2/python')
sys.path.append('/usr/bin/spark-1.5.2/python/lib/py4j-0.8.2.1-src.zip')
import pyspark
sc = pyspark.SparkContext()
hiveContext = pyspark.sql.HiveContext(sc)
sqlContext = pyspark.sql.SQLContext(sc)
from pyspark.sql import Row
from pyspark.sql.functions import struct
from pyspark.sql import DataFrame
from collections import OrderedDict
Run Code Online (Sandbox Code Playgroud)
设置我的数据:
test_ts = {'adminDistrict': None,
'city': None,
'country': {'code': 'NA', 'name': 'UNKNOWN'},
'data': [{'timestamp': '2005-08-25T00:00:00Z', 'value': 369.89},
{'timestamp': '2005-08-26T00:00:00Z', 'value': 362.44},
{'timestamp': '2005-08-29T00:00:00Z', 'value': 368.3},
{'timestamp': '2005-08-30T00:00:00Z', 'value': 382.6},
{'timestamp': '2005-08-31T00:00:00Z', …Run Code Online (Sandbox Code Playgroud) 我无法让我的 SVM 预测我期望的 0 和 1。似乎在我训练它并给它更多数据之后,它总是想预测一个 1 或一个 0,但它会预测全 1 或全 0,而不是两者的混合。我想知道你们中是否有人能告诉我我做错了什么。
我搜索过“svm 总是预测相同的值”和类似的问题,对于我们这些机器学习新手来说,这看起来很常见。恐怕我不明白我遇到的答案。
所以我从这个开始,它或多或少是有效的:
from pyspark.mllib.regression import LabeledPoint
cooked_rdd = sc.parallelize([LabeledPoint(0, [0]), LabeledPoint(1, [1])])
from pyspark.mllib.classification import SVMWithSGD
model = SVMWithSGD.train(cooked_rdd)
Run Code Online (Sandbox Code Playgroud)
我说“或多或少”是因为
model.predict([0])
Out[47]: 0
Run Code Online (Sandbox Code Playgroud)
是我所期望的,而且......
model.predict([1])
Out[48]: 1
Run Code Online (Sandbox Code Playgroud)
也是我所期望的,但是......
model.predict([0.000001])
Out[49]: 1
Run Code Online (Sandbox Code Playgroud)
绝对不是我所期望的。我认为无论是什么原因造成的都是我问题的根源。
在这里,我首先处理我的数据......
def cook_data():
x = random()
y = random()
dice = 0.25 + (random() * 0.5)
if x**2 + y**2 > dice:
category = 0
else:
category = 1
return LabeledPoint(category, [x, y])
cooked_data = …Run Code Online (Sandbox Code Playgroud)