我想在a中添加一个DataFrame
具有任意值的列(对于每一行都是相同的).我使用时出现错误withColumn
如下:
dt.withColumn('new_column', 10).head(5)
Run Code Online (Sandbox Code Playgroud)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-50-a6d0257ca2be> in <module>()
1 dt = (messages
2 .select(messages.fromuserid, messages.messagetype, floor(messages.datetime/(1000*60*5)).alias("dt")))
----> 3 dt.withColumn('new_column', 10).head(5)
/Users/evanzamir/spark-1.4.1/python/pyspark/sql/dataframe.pyc in withColumn(self, colName, col)
1166 [Row(age=2, name=u'Alice', age2=4), Row(age=5, name=u'Bob', age2=7)]
1167 """
-> 1168 return self.select('*', col.alias(colName))
1169
1170 @ignore_unicode_prefix
AttributeError: 'int' object has no attribute 'alias'
Run Code Online (Sandbox Code Playgroud)
似乎我可以通过添加和减去其中一个列(因此它们添加到零)然后添加我想要的数字(在这种情况下为10)来欺骗函数按照我想要的方式工作:
dt.withColumn('new_column', dt.messagetype - dt.messagetype + 10).head(5)
Run Code Online (Sandbox Code Playgroud)
[Row(fromuserid=425, messagetype=1, dt=4809600.0, new_column=10),
Row(fromuserid=47019141, messagetype=1, dt=4809600.0, new_column=10),
Row(fromuserid=49746356, messagetype=1, dt=4809600.0, new_column=10),
Row(fromuserid=93506471, messagetype=1, dt=4809600.0, …
Run Code Online (Sandbox Code Playgroud) 我想做一些非常基本的事情,只需通过EMR控制台启动一个Spark集群,然后运行依赖于Python包的Spark脚本(例如,Arrow).这样做最直接的方法是什么?
来自PySpark文档rangeBetween
:
rangeBetween(start, end)
定义从起点(包括)到结束(包括)的帧边界.
start和end都是当前行的相对值.例如,"0"表示"当前行",而"-1"表示当前行之前的一个关闭,"5"表示当前行之后的五个关闭.
参数:
- 开始 - 边界开始,包括.如果这是-sys.maxsize(或更低),则该框架是无界的.
- 结束 - 边界端,包括端点.如果这是sys.maxsize(或更高),则该框架是无界的.版本1.4中的新功能.
rowsBetween(start, end)
定义从起点(包括)到结束(包括)的帧边界.
start和end都是当前行的相对位置.例如,"0"表示"当前行",而"-1"表示当前行之前的行,"5"表示当前行之后的第五行.
参数:
- 开始 - 边界开始,包括.如果这是-sys.maxsize(或更低),则该框架是无界的.
- 结束 - 边界端,包括端点.如果这是sys.maxsize(或更高),则该框架是无界的.版本1.4中的新功能.
例如rangeBetween
,"1 off"与"1行"有何不同?
我尝试过这种不同的方式,但似乎没有任何效果.这是我目前拥有的:
var vis = d3.select("#chart").append("svg")
.attr("width", 1000)
.attr("height", 667),
scaleX = d3.scale.linear()
.domain([-30,30])
.range([0,600]),
scaleY = d3.scale.linear()
.domain([0,50])
.range([500,0]),
poly = [{"x":0, "y":25},
{"x":8.5,"y":23.4},
{"x":13.0,"y":21.0},
{"x":19.0,"y":15.5}];
vis.selectAll("polygon")
.data(poly)
.enter()
.append("polygon")
.attr("points",function(d) {
return [scaleX(d.x),scaleY(d.y)].join(",")})
.attr("stroke","black")
.attr("stroke-width",2);
Run Code Online (Sandbox Code Playgroud)
我假设这里的问题是我将点数据定义为单个点对象的数组的方式,或者与我如何编写函数的方式有关 .attr("points",...
我一直在网上寻找一个如何绘制简单多边形的教程或示例,但我似乎无法找到它.
尝试构建ML时出现以下错误Pipeline
:
pyspark.sql.utils.IllegalArgumentException: 'requirement failed: Column features must be of type org.apache.spark.ml.linalg.VectorUDT@3bfc3ba7 but was actually ArrayType(DoubleType,true).'
Run Code Online (Sandbox Code Playgroud)
我的features
列包含一个浮点值数组.听起来我需要将它们转换为某种类型的向量(它不是稀疏的,所以是DenseVector?).有没有办法直接在DataFrame上执行此操作,还是需要转换为RDD?
python apache-spark pyspark apache-spark-ml apache-spark-mllib
我正在为篮球制作射门图.我需要弄清楚如何在背景中实际绘制篮球场的轮廓.有任何想法吗?
我的后端是由Django-Rest-Framework提供的REST API.我正在使用VueJS作为前端,并试图找出进行身份验证/登录的最佳实践.这可能是可怕的代码,但它可以工作(在一个名为的组件中Login.vue
):
methods: {
login () {
axios.post('/api-token-auth/login/', {
username: this.username,
password: this.pwd1
}).then(response => {
localStorage.setItem('token', response.data.token)
}).catch(error => {
console.log("Error login")
console.log(error)
})
this.dialog = false
}
}
Run Code Online (Sandbox Code Playgroud)
使用localStorage
这种方式有意义吗?此外,我想知道用户何时想退出,我打电话/api-token-auth/logout
,我是否还需要从中删除令牌localStorage
?实际上,我不清楚Django端或者浏览器/ Vue上的令牌是什么.
假设我有一个DataFrame
用户列和另一列用于他们写的单词:
Row(user='Bob', word='hello')
Row(user='Bob', word='world')
Row(user='Mary', word='Have')
Row(user='Mary', word='a')
Row(user='Mary', word='nice')
Row(user='Mary', word='day')
Run Code Online (Sandbox Code Playgroud)
我想将word
列聚合成一个向量:
Row(user='Bob', words=['hello','world'])
Row(user='Mary', words=['Have','a','nice','day'])
Run Code Online (Sandbox Code Playgroud)
似乎我不能使用任何Sparks分组函数,因为它们期望后续的聚合步骤.我的用例是我想将这些数据提供给Word2Vec
不使用其他Spark聚合.
在Matplotlib的文档中有一个创建雷达图表的例子,我正在尝试理解设计.http://matplotlib.org/examples/api/radar_chart.html
"""
Example of creating a radar chart (a.k.a. a spider or star chart) [1]_.
Although this example allows a frame of either 'circle' or 'polygon', polygon
frames don't have proper gridlines (the lines are circles instead of polygons).
It's possible to get a polygon grid by setting GRIDLINE_INTERPOLATION_STEPS in
matplotlib.axis to the desired number of vertices, but the orientation of the
polygon is not aligned with the radial axes.
.. [1] http://en.wikipedia.org/wiki/Radar_chart
"""
import numpy as np
import …
Run Code Online (Sandbox Code Playgroud) 以下是将LogisticRegression
模型中的预测写入json 的一些代码的结果:
(predictions
.drop(feature_col)
.rdd
.map(lambda x: Row(weight=x.weight,
target=x[target],
label=x.label,
prediction=x.prediction,
probability=DenseVector(x.probability)))
.coalesce(1)
.toDF()
.write
.json(
"{}/{}/summary/predictions".format(path, self._model.bestModel.uid)))
Run Code Online (Sandbox Code Playgroud)
以下是一个生成JSON对象的示例:
{"label":1.0,"prediction":0.0,"probability":{"type":1,"values":[0.5835784358591029,0.4164215641408972]},"target":"Male","weight":99}
Run Code Online (Sandbox Code Playgroud)
我希望能够将相同的数据输出到CSV文件(最好只用probability.values[0]
(值数组的第一个元素).但是当我使用与上面相同的代码片段,但替换.json
为.csv
,我得到以下结果:
1.0,0.0,"[6,1,0,0,280000001c,c00000002,af154d3100000014,a1d5659f3fe2acac,3fdaa6a6]",Male,99
Run Code Online (Sandbox Code Playgroud)
第3列发生了什么(一个字符串中引用了一堆值的数组)?
apache-spark ×6
pyspark ×5
python ×4
d3.js ×1
dataframe ×1
django ×1
emr ×1
ggplot2 ×1
javascript ×1
matplotlib ×1
r ×1
sql ×1
vuejs2 ×1