我使用monotonically_increasing_id()使用以下语法将行号分配给pyspark数据帧:
df1 = df1.withColumn("idx", monotonically_increasing_id())
Run Code Online (Sandbox Code Playgroud)
现在df1有26,572,528条记录.所以我期待idx值从0-26,572,527.
但是当我选择max(idx)时,它的值非常大:335,008,054,165.
这个功能发生了什么?使用此函数与具有相似记录数的其他数据集合并是否可靠?
我有大约300个数据帧,我想将它们组合成一个数据帧.因此,一个数据帧包含ID,而其他数据帧包含与行对应的不同记录
我有一个大约有100列的数据框,有一些布尔列和一些字符.我想替换所有具有值True/False的布尔值以及-1和1/0的布尔值.我想将它应用于整个数据帧而不是单列.
我在这里看到了一些解决方案,比如将列转换为整数.但是我想避免通过100列的练习.
这是我尝试失败的事情:
test.applymap(lambda x: 1 if x=='True' else x)
test.applymap(lambda x: 0 if x=='False' else x)
Run Code Online (Sandbox Code Playgroud)
但是数据帧测试仍然是True/False
我正在创建一个示例数据框:
tp = pd.DataFrame({'source':['a','s','f'],
'target':['b','n','m'],
'count':[0,8,4]})
Run Code Online (Sandbox Code Playgroud)
并根据“目标”列的条件创建列“col”>>与源相同,如果匹配条件,则为默认值,如下所示:
tp['col'] = tp.apply(lambda row:row['source'] if row['target'] in ['b','n'] else 'x')
Run Code Online (Sandbox Code Playgroud)
但它给我这个错误: KeyError: ('target', 'occurred at index count')
如何在不定义函数的情况下使其工作?
我有大约 10k 客户 3 个月的历史购买数据,我想使用该数据来预测他们在未来 3 个月内的购买情况。我使用客户 ID 作为输入变量,因为我希望 xgboost 了解不同类别之间的个人支出。有没有办法进行调整,以便重点是根据每个人的购买情况了解更多信息?或者解决这个问题的更好方法?
我有一个 pyspark 数据框child,其中包含以下列:
lat1 lon1
80 70
65 75
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用 IndexedRowMatrix 将其转换为 numpy 矩阵,如下所示:
from pyspark.mllib.linalg.distributed import IndexedRow, IndexedRowMatrix
mat = IndexedRowMatrix(child.select('lat','lon').rdd.map(lambda row: IndexedRow(row[0], Vectors.dense(row[1:]))))
Run Code Online (Sandbox Code Playgroud)
但它给我带来了错误。我想避免转换为 pandas 数据帧来获取矩阵。
错误:
Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.runJob.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 33.0 failed 4 times, most recent failure: Lost task 0.3 in stage 33.0 (TID 733, ebdp-avdc-d281p.sys.comcast.net, executor 16): org.apache.spark.api.python.PythonException: Traceback (most recent call last):
File "/data/02/yarn/nm/usercache/mbansa001c/appcache/application_1506130884691_56333/container_e48_1506130884691_56333_01_000017/pyspark.zip/pyspark/worker.py", line 174, in main …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用底图在背景上绘制散点图。但这覆盖了背景。如何保留背景?
我正在使用此代码
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
m = Basemap(projection='merc',llcrnrlat=-80,urcrnrlat=80,llcrnrlon=-180,urcrnrlon=180,lat_ts=20,resolution='c')
m.bluemarble()
x, y = m(list(longitude), list(latitude))
plt.scatter(x,y,1,marker='o',color='Red')
plt.show()
Run Code Online (Sandbox Code Playgroud)
但是,一旦我运行散点图,它就会覆盖背景图像。如何将散点图覆盖在图像上。