小编TH2*_*H22的帖子

SQLAlchemy中的GroupBy和Sum?

我试图在一个表中组合几个字段,然后对这些组进行求和,但它们会被重复计算.

我的模型如下:

class CostCenter(db.Model):
     __tablename__ = 'costcenter'
     id = db.Column(db.Integer, primary_key=True, autoincrement=True)
     name = db.Column(db.String)
     number = db.Column(db.Integer)

class Expense(db.Model):

    __tablename__ = 'expense'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    glitem_id = db.Column(db.Integer, db.ForeignKey('glitem.id'))
    glitem = db.relationship('GlItem')
    costcenter_id = db.Column(db.Integer, db.ForeignKey('costcenter.id'))
    costcenter = db.relationship('CostCenter')
    value = db.Column(db.Float)
    date = db.Column(db.Date)
Run Code Online (Sandbox Code Playgroud)

我一直在使用:

expenses=db.session.query(Expense,func.sum(Expense.value)).group_by(Expense.date).filter(CostCenter.id.in_([1,2,3]))
Run Code Online (Sandbox Code Playgroud)

当我打印费用时,它显示了后面的SQL语句.它对我来说是正确的,但我不熟悉SQL.问题是它作为sum_1输出的值被多次计数.如果我在"in statment"中有[1]项,那么它将全部三个相加.如果我有[1,2],它将总和所有三个然后加倍它,如果我有[1,2,3],它将总和所有三个并加倍它.我不确定为什么它会多次计数.我该如何解决?

SELECT expense.id AS expense_id, expense.glitem_id AS expense_glitem_id, expense.costcenter_id AS         expense_costcenter_id, expense.value AS expense_value, expense.date AS expense_date, sum(expense.value) AS sum_1 
FROM expense, costcenter 
WHERE costcenter.id IN (:id_1, :id_2, :id_3) …
Run Code Online (Sandbox Code Playgroud)

python sql sqlalchemy flask flask-sqlalchemy

8
推荐指数
1
解决办法
2万
查看次数

保存时挂起的Spark Dataframe

我一直在努力寻找火花作业的问题,该火花作业无限期地挂在我尝试将其写到S3或HDFS(约100G拼花格式的数据)的地方。

导致挂起的行:

spark_df.write.save(MY_PATH,format='parquet',mode='append')
Run Code Online (Sandbox Code Playgroud)

我已经在覆盖模式和附加模式下进行了尝试,并尝试将其保存到HDFS和S3,但是无论如何,该工作都将挂起。

在Hadoop资源管理器GUI中,它将Spark应用程序的状态显示为“正在运行”,但是看起来Spark实际上并没有执行任何操作,当我查看Spark UI时,没有任何作业正在运行。

使它起作用的一件事是在处于挂起状态(我在AWS上)时增加集群的大小。但是,这与我是否以6个工人启动集群并增加到7个无关紧要,还是如果我以7个工人启动并增加到8个无关紧要,这对我来说似乎有些奇怪。在这两种情况下,群集都在使用所有可用的内存,但是我没有遇到内存错误。

关于可能出什么问题的任何想法?

hadoop amazon-web-services amazon-emr apache-spark pyspark

3
推荐指数
1
解决办法
605
查看次数