小编Due*_*ieb的帖子

get_dummies python内存错误

我遇到了一个有400,000行和300个变量的数据集的问题.我必须为具有3,000多个不同项目的分类变量获取虚拟变量.最后,我想得到一个包含3,300个变量或特征的数据集,以便我可以训练一个RandomForest模型.

这是我试图做的:

 df = pd.concat([df, pd.get_dummies(df['itemID'],prefix = 'itemID_')], axis=1)
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我总会得到一个内存错误.我可以拥有的变量数量是否有限制?

如果我只用前1000行(有374个不同的类别)那样做,它就可以了.

有没有人能解决我的问题?我正在使用的计算机有8 GB的内存.

python pandas

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

重命名写入的 CSV 文件 Spark

我正在运行 Spark 2.1,我想将包含结果的 csv 写入 Amazon S3。重新分区后,csv 文件的名称有点长,我想将其更改为特定的文件名。

我正在使用 databricks 库写入 S3。

dataframe
    .repartition(1)
    .write
    .format("com.databricks.spark.csv")
    .option("header", "true")
    .save("folder/dataframe/")
Run Code Online (Sandbox Code Playgroud)

有没有办法事后重命名文件,甚至直接用正确的名称保存?我已经在寻找解决方案,但还没有找到太多。

谢谢

amazon-s3 apache-spark apache-spark-sql

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

在Python中为大型数据集创建邻接矩阵

我在Python中的Adjacency Matrix中表示网站用户行为时遇到问题.我想分析43个不同网站之间的用户交互,以查看哪些网站一起使用.

给定的数据集具有大约13.000.000行,具有以下结构:

 user website
 id1  web1
 id1  web2
 id1  web2
 id2  web1
 id2  web2
 id3  web3
 id3  web2
Run Code Online (Sandbox Code Playgroud)

我想想象一下Adjacency Matrix中网站之间的互动,如下所示:

     web1 web2 web3
 web1  2    2    0
 web2  2    4    1
 web3  0    1    1
Run Code Online (Sandbox Code Playgroud)

我很高兴任何建议

python numpy matrix bigdata adjacency-matrix

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

将Spark数据帧转换为org.apache.spark.rdd.RDD [org.apache.spark.mllib.linalg.Vector]

我对scala非常新,并且激发2.1.我正在尝试计算数据框中许多元素之间的相关性,如下所示:

item_1 | item_2 | item_3 | item_4
     1 |      1 |      4 |      3
     2 |      0 |      2 |      0
     0 |      2 |      0 |      1
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的:

val df = sqlContext.createDataFrame(
  Seq((1, 1, 4, 3),
      (2, 0, 2, 0),
      (0, 2, 0, 1)
).toDF("item_1", "item_2", "item_3", "item_4")


val items = df.select(array(df.columns.map(col(_)): _*)).rdd.map(_.getSeq[Double](0))
Run Code Online (Sandbox Code Playgroud)

并计算元素之间的相关性:

val correlMatrix: Matrix = Statistics.corr(items, "pearson")
Run Code Online (Sandbox Code Playgroud)

有以下错误消息:

<console>:89: error: type mismatch;
found   : org.apache.spark.rdd.RDD[Seq[Double]]
 required: org.apache.spark.rdd.RDD[org.apache.spark.mllib.linalg.Vector]
       val correlMatrix: Matrix = Statistics.corr(items, "pearson")
Run Code Online (Sandbox Code Playgroud)

我不知道如何org.apache.spark.rdd.RDD[org.apache.spark.mllib.linalg.Vector] …

scala apache-spark rdd apache-spark-sql apache-spark-mllib

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