A pythonic wrapper around ROOT's RDataFrame with support for distributed execution.
import PyRDF, ROOT
PyRDF.use('spark', {'npartitions':4})
df = PyRDF.RDataFrame("data", ['https://root.cern/files/teaching/CMS_Open_Dataset.root',])
etaCutStr = "fabs(eta1) < 2.3"
df_f = df.Filter(etaCutStr)
df_histogram = df_f.Histo1D("eta1")
canvas = ROOT.TCanvas()
df_histogram.Draw()
canvas.Draw()