我遇到了一个有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的内存.
我正在运行 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)
有没有办法事后重命名文件,甚至直接用正确的名称保存?我已经在寻找解决方案,但还没有找到太多。
谢谢
我在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)
我很高兴任何建议
我对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] …