小编new*_*eaf的帖子

Pyspark的'PipelinedRDD'对象没有属性'show'

我想知道df中所有不在df1中的项目,df1中的项目,但df中没有

    df =sc.parallelize([1,2,3,4 ,5 ,6,7,8,9])
    df1=sc.parallelize([4 ,5 ,6,7,8,9,10])
    df2 = df.subtract(df1)
    df2.show()
    df3 = df1.subtract(df)
    df3.show()
Run Code Online (Sandbox Code Playgroud)

只想检查结果,看看我是否理解这个功能.但得到这个错误'PipelinedRDD'对象没有属性'显示'任何建议?

attributes pyspark

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

日期之间的Redshift查询

我对Redshift SQL很新.

    select *  from myredshift_tbl 
    where local_date between \'2016-01-01\' and \'2017-02-01\'; 
Run Code Online (Sandbox Code Playgroud)

但得到了这个错误:

[amazon] [500310]"\"处或附近的操作语法错误无效.我相信Redshift使用单引号我需要逃避单引号.

sql amazon-redshift

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

pyspark计算条件的行

我有一个数据帧

test = spark.createDataFrame([('bn', 12452, 221), ('mb', 14521, 330),('bn',2,220),('mb',14520,331)],['x','y','z'])
test.show()
Run Code Online (Sandbox Code Playgroud)

我需要根据条件计算行数:

test.groupBy("x").agg(count(col("y")>12453),count(col("z")>230)).show()
Run Code Online (Sandbox Code Playgroud)

这使

 +---+------------------+----------------+
 |  x|count((y > 12453))|count((z > 230))|
 +---+------------------+----------------+
 | bn|                 2|               2|
 | mb|                 2|               2|
 +---+------------------+----------------+
Run Code Online (Sandbox Code Playgroud)

对于某些条件,它只是行的计数而不是行的计数.

count pyspark

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

计算 PySpark 列中的非空值数量

我有一个包含空值的数据框:

from pyspark.sql import functions as F
df = spark.createDataFrame(
    [(125, '2012-10-10', 'tv'),
     (20, '2012-10-10', 'phone'),
     (40, '2012-10-10', 'tv'),
     (None, '2012-10-10', 'tv')],
    ["Sales", "date", "product"]
)
Run Code Online (Sandbox Code Playgroud)

我需要计算“销售额”列中的非空值。

我尝试了3种方法。

第一个我做对了:

df.where(F.col("sales").isNotNull()).groupBy('product')\
  .agg((F.count(F.col("Sales")).alias("sales_count"))).show()

# product   | sales_count
# phone     |  1
# tv        |  2
Run Code Online (Sandbox Code Playgroud)

第二个是不正确的:

df.groupBy('product')\
  .agg((F.count(F.col("Sales").isNotNull()).alias("sales_count"))).show()

# product   | sales_count
# phone     |  1
# tv        |  3
Run Code Online (Sandbox Code Playgroud)

第三次,我得到了错误:

 df.groupBy('product')\
   .agg((F.col("Sales").isNotNull().count()).alias("sales_count")).show()
Run Code Online (Sandbox Code Playgroud)

类型错误:“列”对象不可调用

第二种和第三种方法可能会导致错误的原因是什么?

null count apache-spark apache-spark-sql pyspark

7
推荐指数
2
解决办法
3万
查看次数

python pip安装错误:命令'gcc'失败,退出状态为1

我试过安装quandl

    pip install quandl
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

    Collecting quandl
    Using cached Quandl-3.0.1-py2.py3-none-any.whl
    Collecting pyOpenSSL (from quandl)
    Using cached pyOpenSSL-16.0.0-py2.py3-none-any.whl
    Requirement already satisfied (use --upgrade to upgrade): pyasn1 in      /usr/local/lib/python3.2/dist-packages (from quandl)
    Collecting more-itertools (from quandl)
    Using cached more-itertools-2.2.tar.gz
    Requirement already satisfied (use --upgrade to upgrade): six in ./.local/lib/python3.2/site-packages (from quandl)
    Collecting ndg-httpsclient (from quandl)
    Using cached ndg_httpsclient-0.4.1.tar.gz
    Requirement already satisfied (use --upgrade to upgrade): numpy>=1.8 in /usr/local/lib/python3.2/dist-packages (from quandl)
    Requirement already satisfied (use --upgrade to upgrade): python-dateutil in ./.local/lib/python3.2/site-packages (from quandl)
    Requirement …
Run Code Online (Sandbox Code Playgroud)

installation pip

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

在 Pyspark 中,从包含字符串列表的列中获取最常见的字符串

使用包含列的数据框,列中的值是列表,

id    |   values
1     |   ['good','good','good','bad','bad','good','good']
2     |   ['bad','badd','good','bad',Null,'good','bad']
....
Run Code Online (Sandbox Code Playgroud)

如何获得列表中最常显示的字符串?预期输出:

id   | most_frequent
1    | 'good'
2    | 'bad'
....
Run Code Online (Sandbox Code Playgroud)

apache-spark pyspark

6
推荐指数
1
解决办法
935
查看次数

Pandas groupby 结合 sklean 预处理续

从这篇文章继续: Pandas groupby 与 sklearn 预处理相结合

我需要通过按两列缩放分组数据来进行预处理,不知怎的,第二种方法会出现一些错误

import pandas as pd
import numpy as np
from sklearn.preprocessing import robust_scale,minmax_scale

df = pd.DataFrame( dict( id=list('AAAAABBBBB'),
                loc = (10,20,10,20,10,20,10,20,10,20),
                value=(0,10,10,20,100,100,200,30,40,100)))

df['new'] = df.groupby(['id','loc']).value.transform(lambda x:minmax_scale(x.astype(float) ))

df['new'] = df.groupby(['id','loc']).value.transform(lambda x:robust_scale(x ))
Run Code Online (Sandbox Code Playgroud)

第二个给我这样的错误:

ValueError:需要 2D 数组,却得到 1D 数组:array=[ 0. 10. 100.]。如果数据具有单个特征,则使用 array.reshape(-1, 1) 重塑数据;如果数据包含单个样本,则使用 array.reshape(1, -1) 重塑数据。

如果我使用重塑我会得到这样的错误:

例外:数据必须是一维的

如果我打印出分组数据,g['value']那就是 pandas 系列。

for n, g in df.groupby(['id','loc']):
    print(type(g['value']))
Run Code Online (Sandbox Code Playgroud)

你知道是什么原因造成的吗?

谢谢。

pandas scikit-learn

5
推荐指数
1
解决办法
529
查看次数

pyenv install -l 没有显示我需要安装的版本

对于一个项目,我需要 Python 版本 3.6.8,我曾经pyenv install -l 列出所有可安装的版本,但找不到它。在我尝试了几次之后,包括: use brew upgrade pyenv,尝试卸载 pyenv,尝试brew update brew upgrade然后更新 pyenv,仍然没有找到我需要的版本。有什么建议吗?谢谢。

pyenv

5
推荐指数
1
解决办法
2431
查看次数

pyspark“DataFrame”对象没有属性“pivot”

我正在使用 pyspark 2.0 我有一个像这样的 df:

    +----------+----------+--------
    |pid       |      date| p_category
    +----------+----------+--------
    |    1ba   |2016-09-30|flat
    |    3ed   |2016-09-30|ultra_thin
    +----------+----------+----------
Run Code Online (Sandbox Code Playgroud)

我做了一个

    df.groupBy("p_category","date") \                        
    .agg(countDistinct("pid").alias('cnt'))
Run Code Online (Sandbox Code Playgroud)

我得到了这个:

    +-------------+----------+------+
    |p_category   |      date|   cnt|
    +-------------+----------+------+
    |    flat     |2016-09-30|116251|
    |ultra_thin   |2016-09-30|113017|
    +-------------+----------+------+
Run Code Online (Sandbox Code Playgroud)

但我想要这样的数据透视表:

    +----------+----------+------+
    |date      |      flat|  ultra-thin
    +----------+----------+------+
   2016-09-30  |    116251|113017
    ------------------------------
   df.groupBy("p_category","date") \                        
    .agg(countDistinct("pid").alias('cnt')).pivot("p_category")
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

“DataFrame”对象没有属性“pivot”

在这种情况下我该如何进行枢轴或者有其他解决方案?谢谢

pivot pyspark

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

在pyspark中将Unix(纪元)时间更改为本地时间

我在 Spark 中有一个数据帧,其中包含 Unix(Epoch) 时间和时区名称。我希望根据不同的tz名称将epochtime转换为当地时间。我的数据如下所示:

data = [
    (1420088400, 'America/New_York'),
    (1420088400, 'America/Los_Angeles'),
    (1510401180, 'America/New_York'),
    (1510401180, 'America/Los_Angeles')]

df = spark.createDataFrame(data, ["epoch_time", "tz_name"])

df.createOrReplaceTempView("df")
df1 = spark.sql("""select *, from_unixtime(epoch_time) as gmt_time,"
               from_utc_timestamp(from_unixtime(epoch_time), tz_name) as local_time"
               from df""")
df1.show(truncate= False)
Run Code Online (Sandbox Code Playgroud)

结果如下:

+----------+-------------------+-------------------+---------------------+
|epoch_time|tz_name            |gmt_time           |local_time           |
+----------+-------------------+-------------------+---------------------+
|1420088400|America/New_York   |2015-01-01 05:00:00|2015-01-01 00:00:00.0|
|1420088400|America/Los_Angeles|2015-01-01 05:00:00|2014-12-31 21:00:00.0|
|1510401180|America/New_York   |2017-11-11 11:53:00|2017-11-11 06:53:00.0|
|1510401180|America/Los_Angeles|2017-11-11 11:53:00|2017-11-11 03:53:00.0|
+----------+-------------------+-------------------+---------------------+
Run Code Online (Sandbox Code Playgroud)
  1. 我不太确定这种转移是否正确,但夏令时似乎已经得到考虑。
  2. 我是否应该首先使用 from_unixtime 将 epochtime 更改为时间字符串,然后使用 to_utc_timestamp 将其更改为 utc 时间戳,最后使用 tz_name 将此 UTC 时间戳更改为本地时间?尝试了这个但出现错误

    df2 = spark.sql("""select *, from_unixtime(epoch_time) as gmt_time, …
    Run Code Online (Sandbox Code Playgroud)

timezone epoch apache-spark apache-spark-sql pyspark

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

mlflow 异常:使用 UUID 运行已处于活动状态

使用mlflow.set_tracking_uri设置tracking_uri和set_experiment,出现错误并再次检查以运行以下代码。收到错误“异常:使用 UUID 运行已处于活动状态。” 尝试使用mlflow.end_run结束当前运行,但得到 RestException:RESOURCE_DOES_NOT_EXIST:未找到运行 UUID。目前陷入了这个无限循环。有什么建议吗?

    mlflow.set_experiment("my_experiment")
    mlflow.start_run(run_name='my_project')
    mlflow.set_tag('input_len',len(input))
    mlflow.log_param('metrics', r2)
Run Code Online (Sandbox Code Playgroud)

mlflow

3
推荐指数
2
解决办法
6161
查看次数

熊猫空字符串到整数

有一个包含多列的 csv 文件,有些列混合了字母和数字。需要删除字母并设置为空并将列更改为整数但出现一些错误。似乎 Pandas 最近添加了可为空的整数类型。https://pandas.pydata.org/pandas-docs/stable/user_guide/integer_na.html。但是在更改为 int 时我仍然会出错。我需要将列保留为 int,因此我无法使用另一种解决方法将列设置为在列中使用 NAN 浮动。数据如下所示:

 id    count      volume   
 001,     A   ,       1
 002,     1   ,       2
Run Code Online (Sandbox Code Playgroud)

列数和卷包含以下值:“1”、“2”、“A”、.....

我使用 re 模块来删除字母和空格

df["count"] = df["count"].apply(lambda x: re.sub(r'\s[a-zA-Z]*', '',x))
Run Code Online (Sandbox Code Playgroud)

现在列中的值看起来像:'1'、'2'、''、......

尝试更改为“Int64”但出现错误:

  df["count"].astype(str).astype('Int64')
Run Code Online (Sandbox Code Playgroud)

类型错误:对象无法转换为 IntegerDtype

任何建议或解决方法?

pandas

0
推荐指数
1
解决办法
1838
查看次数