草庐IT

pyspark-dataframes

全部标签

python - 将 Pandas DataFrame 转换为 JSON 作为更大数据结构的元素

我一直在我的服务器中使用pandasDataFrame对象,将它们转换为CSV以传输到浏览器,其中表格值使用d3绘制。虽然CSV就其本身而言是文件,但我确实需要的不仅仅是一个二维数据表。如果不出意外,我想返回一些关于数据的元数据。所以我开始摆弄JSON,认为我可以构建一个包含一些元信息和我的DataFrame的字典。例如,就像一个荒谬的简单例子:>>>z=numpy.zeros(10)>>>df=pandas.DataFrame(z)>>>df000102030405060708090>>>result={..."name":"SimpleExample",..."data":df,.

python - pandas:使用 loc 迭代 DataFrame 索引

我似乎找不到.loc行为背后的原因。我知道它是基于标签的,所以如果我遍历Index对象,下面的最小示例应该可以工作。但事实并非如此。我当然用谷歌搜索了,但我需要已经掌握索引的人的额外解释。importdatetimeimportpandasaspddict_weekday={1:'MON',2:'TUE',3:'WED',4:'THU',5:'FRI',6:'SAT',7:'SUN'}df=pd.DataFrame(pd.date_range(datetime.date(2014,1,1),datetime.date(2014,1,15),freq='D'),columns=['Dat

python - PySpark distinct().count() 在 csv 文件上

我是spark的新手,我正在尝试根据csv文件的某些字段制作一个distinct().count()。Csv结构(无标题):id,country,type01,AU,s102,AU,s203,GR,s203,GR,s2加载我输入的.csv:lines=sc.textFile("test.txt")然后lines上的不同计数按预期返回3:lines.distinct().count()但我不知道如何根据id和country进行不同的计数。 最佳答案 在这种情况下,您可以选择要考虑的列,然后计数:sc.textFile("test.tx

python - 如何使用 pandas DataFrame 绘图函数为每个子图绘制一个 ylabel

默认情况下,使用子图选项的pandas.DataFrame.plot()似乎并不容易为每个子图绘制一个ylabel。我正在尝试绘制一个pandas数据框,该数据框中的每列都有一个子图。到目前为止不起作用的代码:fig=plt.figure(figsize=(10,10))ax=plt.gca()df.plot(y=vars,ax=ax,subplots=True,layout=(3,1),sharex=True,legend=False,)ax.set_ylabel=['y','x','z']但这根本不会绘制任何标签。 最佳答案 您

python - Pyspark Invalid Input Exception try except 错误

我正在尝试使用pyspark从s3读取最近4个月的数据并处理数据,但收到以下异常。org.apache.hadoop.mapred.InvalidInputException:InputPatterns3://path_to_clickstream/date=201508*在每个月的第一天,由于s3路径中没有条目(一个单独的作业处理数据并将数据上传到s3路径,而我的作业在该路径之前运行),作业失败。我想知道是否有办法捕获此异常并允许作业继续处理所有存在的路径? 最佳答案 您可以简单地尝试在加载后立即触发廉价操作并捕获Py4JJava

python - 如何展平 PySpark 中的嵌套列表?

我有一个像这样的RDD结构:rdd=[[[1],[2],[3]],[[4],[5]],[[6]],[[7],[8],[9],[10]]]我希望它变成:rdd=[1,2,3,4,5,6,7,8,9,10]如何编写map或reduce函数使其工作? 最佳答案 例如,您可以使用flatMap并使用列表理解:rdd.flatMap(lambdaxs:[x[0]forxinxs])或者让它更通用一点:fromitertoolsimportchainrdd.flatMap(lambdaxs:chain(*xs)).collect()

python - 连续行之间的日期差异 - Pyspark Dataframe

我有一个具有以下结构的表USER_IDTweet_IDDate11001ThuAug0519:11:39+0000201016022MonAug0917:51:19+0000201011041SunAug1911:10:09+0000201029483MonJan1110:51:23+0000201224532FriMay2111:11:11+0000201234374SatJul1003:21:23+0000201334334SunJul1104:53:13+00002013基本上我想做的是有一个PysparkSQL查询,它计算具有相同user_id号的连续记录的日期差异(以秒为单位

python - 如何在 DataFrame 的 groupby 中增加行数

我需要计算pandasDataFrame中每个产品的activity_months数。到目前为止,这是我的数据和代码:frompandasimportDataFramefromdatetimeimportdatetimedata=[('product_a','08/31/2013'),('product_b','08/31/2013'),('product_c','08/31/2013'),('product_a','09/30/2013'),('product_b','09/30/2013'),('product_c','09/30/2013'),('product_a','10/3

python - 将列表读入 pandas DataFrame 的列

我想将列表加载到pandasDataFrame的列中,但似乎无法简单地做到这一点。这是我想要使用transpose()的示例,但我认为这是不必要的:In[1]:importnumpyasnpIn[2]:importpandasaspdIn[3]:x=np.linspace(0,np.pi,10)In[4]:y=np.sin(x)In[5]:data=pd.DataFrame(data=[x,y]).transpose()In[6]:data.columns=['x','sin(x)']In[7]:dataOut[7]:xsin(x)00.0000000.000000e+0010.349

python - PySpark 减少按键?添加键/元组

我有以下数据,我要做的是[(13,'D'),(14,'T'),(32,'6'),(45,'T'),(47,'2'),(48,'0'),(49,'2'),(50,'0'),(51,'T'),(53,'2'),(54,'0'),(13,'A'),(14,'T'),(32,'6'),(45,'A'),(47,'2'),(48,'0'),(49,'2'),(50,'0'),(51,'X')]是为每个键计算值的实例(一个1字符串字符)。所以我先做了一张map:.map(lambdax:(x[0],[x[1],1]))现在将其作为键/元组:[(13,['D',1]),(14,['T',1]),(3